facebook / facebook/zstd

[Huffman Assembly] Expand supported platforms

オープン
#2,789 コメント 11 件 リアクション 2 件 担当者 1 名 @terrelln が担当を希望しています GitHub で見る
help wanted long-term
主要言語
C
スター
27.9k
フォーク
2.6k
平均マージ
1日 3時間
マージ済み PR(30日)
8

説明

The x86-64 Huffman assembly implementation is currently allow-listed to work on:
* Linux: `defined(__linux__) || defined(__linux)`
* MacOS: `defined(__APPLE__)`

The macro to check this is `HUF_ASM_SUPPORTED` defined in `huf_decompress.c`.

I've selected a very restricted set of platforms because I want to be sure that it is well tested before enabling it. Any platform that shares a calling convention with Linux should just work, but I want to be cautious of details, like working with interrupt handlers & debuggers. It should be easy to add BSD to this list, if someone wants to test that everything works as expected.

The assembly currently doesn't work on Windows because it has a different calling convention. And I had a really hard time getting the detection macros right. So if someone wants to take that on, that would be great.

Tasks:
* [ ] Test and enable support for x86-64 assembly on BSD.
* [ ] Add support for Windows in the x86-64 assembly & enable assembly in the Visual Studios build.
* [ ] Add support for assembly in the amalgamated build (`build/single_file_libs`). Probably by translating the `.S` file into inline assembly.
* [ ] Add an aarch64 assembly implementation.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。