-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update to LLMV version new enough to support ARM chips, including Apple M1,2,3 chips #408
Comments
Well this is annoying. I did mention in #380 about using the LLVM 15 branch. I see that has been committed to in the past 2mos, which is better than the default branch! If we do opt to roll our own, I'd be more in favour of the latter. I'd suspect that it's less to maintain than a C++ project. |
Yeah, but the LLVM 15 branch shows a bright red X indicating that some CI tests fail. The current main branch is LLVM 12. I thought we should move to that, but when I tried to install llvm-hs/llvm/llvm-12 using Homebrew on my M1 Mac, it didn't build. The open source ecosystem on Macs is not at the same level as Linux :-(. |
Yes, indeed. The tests are for some (older) versions of GHC on MacOS. Perhaps if we support a higher version than that we'd be okay? |
I think LLVM version 15 is new enough. The newest LLVM version supported by llvm-hs is 15, but that's not stable. We might be able to stick with it, but llvm-hs-pretty looks to be stuck at version 9, so we might not be able to use that. |
It's time to abandon llvm-hs. It's dead, Jim. There hasn't been a commit to it in a year, and it's just not making progress. We need to support both Intel and Apple M1 and M2, and ideally ARM chips in general, and there's no progress on making llvm-hs support that.
There are two alternative solutions: write our own C++-based Haskell interface to LLVM AST, or just generate a .ll text file, and use the normal LLVM assembler to generate and optimise code. I expect the latter approach would be easier.
The text was updated successfully, but these errors were encountered: