cmhughes / latexindent.pl

Perl script to add indentation (leading horizontal space) to LaTeX files. It can modify line breaks before, during and after code blocks; it can perform text wrapping and paragraph line break removal. It can also perform string-based and regex-based substitutions/replacements. The script is customisable through its YAML interface.
GNU General Public License v3.0
892 stars 84 forks source link

Please add aarch64 binary to releases #560

Open life00 opened 2 months ago

life00 commented 2 months ago

Please add aarch64 linux binary to releases. Thanks :D

cmhughes commented 2 months ago

It's controlled by github actions

https://github.com/cmhughes/latexindent.pl/blob/main/.github/workflows/build-documentation-and-executables.yaml

If you can help with this, please submit a pull request.

life00 commented 2 months ago

After researching a bit I would say it might not be possible. The thing is that pp does not seem to support target architecture compilation. i.e. it's not possible to compile a binary for aarch64 from an x86_64 linux system. Btw before this I didn't even know that its possible to compile perl.

If you look at the man page of pp there is an option -m that supposedly produces multi-arch something, but I guess it produces the code in a packaged format for multiple architectures and it should be installed by the pp package manager afterwards. So its not very helpful.

I also looked at github actions and available architectures. So it seems that they do not offer any straightforward way of running on arm64: https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners

I will probably open an issue on regarding this on https://github.com/rschupp/PAR-Packer, and maybe there is some undocumented environment variable that could be set to get targer architecture compilation working.

Edit: https://github.com/rschupp/PAR-Packer/issues/91

life00 commented 2 months ago

The maintainer responded: https://github.com/rschupp/PAR-Packer/issues/91#issuecomment-2333571320

So yeah its not really possible it seems, unless github actions has aarch64/arm64 architecture linux machines.

life00 commented 2 months ago

What a coincidence. It seems github released arm64 runners for linux just few days ago. I found a long thread about this here: https://github.com/orgs/community/discussions/19197

Relevant blog: https://github.blog/news-insights/product-news/arm64-on-github-actions-powering-faster-more-efficient-build-systems/

@cmhughes I believe it would be enough to create a duplicate build-linux-executable, except maybe with an -arm64 suffix, and then change the runner to an arm64 one. I am sorry I have never used github actions so I have no idea how to configure or test it. They seem to have officially released windows and linux arm64 runners but I can't find any names for them. Maybe you'll have more luck with that blog above.

Edit: it seems to only be available to limited users of github:

These runners are available to our customers on our GitHub Team and Enterprise Cloud plans. We expect to begin offering Arm runners for open source projects by the end of the year.

I guess lets wait till the end of the year.

cmhughes commented 2 months ago

Thanks for your time on this.

I believe it would be enough to create a duplicate build-linux-executable, except maybe with an -arm64 suffix, and then change the runner to an arm64 one

Yes, perfect, that's what I would like in the yaml file.

I guess we wait until it's available. Happy to leave this open, or close it at your preference.