Skip to content

[CI] Update Windows job to LLVM 15#13208

Merged
straight-shoota merged 10 commits intocrystal-lang:masterfrom
straight-shoota:feature/win-ci-llvm-15
Mar 28, 2023
Merged

[CI] Update Windows job to LLVM 15#13208
straight-shoota merged 10 commits intocrystal-lang:masterfrom
straight-shoota:feature/win-ci-llvm-15

Conversation

@straight-shoota
Copy link
Member

Goes on top of #13207

@HertzDevil
Copy link
Contributor

HertzDevil commented Mar 22, 2023

Since LLVM 15, downloading the LLVM source is not enough, and the CMake archive must also be extracted alongside LLVM (e.g. https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/cmake-15.0.7.src.tar.xz). The directory structure would look like:

cmake
- Modules
  - ...
- README.rst
llvm
- cmake
  - modules
  - platforms
  - ...
- CMakeLists.txt

@straight-shoota
Copy link
Member Author

straight-shoota commented Mar 22, 2023

Yes, I just talked about this with @beta-ziliani and we're planning to do the same changes as in crystal-lang/distribution-scripts#234, that is downloading the entire project and building only a selected part of it.

I guess just downloading cmake in addition to the llvm source could be an alternative solution that's a bit more efficient?

@beta-ziliani
Copy link
Member

efficiency is in the eye of the beholder. downloading two things means updating two things in the future :-)

@straight-shoota
Copy link
Member Author

Yeah, but it's two things that sum up to about 50 MB vs. one thing that's 100 MB 😁

@beta-ziliani
Copy link
Member

does it make sense to build for aarch64?

@HertzDevil
Copy link
Contributor

We can add AArch64 and WebAssembly to LLVM_TARGETS_TO_BUILD. Native Crystal on an ARM64 host is a different story

@beta-ziliani
Copy link
Member

AArch64 is there already, I was questioning its use, but I got it now with your comment. I'll leave adding WebAssembly for now. We need to also add it in the macOS build; I don't know what's the story for linux.

@straight-shoota straight-shoota deleted the branch crystal-lang:master March 23, 2023 15:00
@HertzDevil
Copy link
Contributor

I tested locally and #13218 should fix all the spec failures (including ones in primitives_spec)

@straight-shoota straight-shoota changed the base branch from refactor/win-ci to master March 23, 2023 18:33
@straight-shoota straight-shoota marked this pull request as ready for review March 23, 2023 18:33
@straight-shoota
Copy link
Member Author

@HertzDevil CI is still failing even with #13218
It's different errors now and fewer, so I guess we're making progress 😅

https://github.com/crystal-lang/crystal/actions/runs/4509903796/jobs/7940211383?pr=13208

@HertzDevil
Copy link
Contributor

It's probably because the overflow conditions for 128-bit integers are not as simple as T::MIN <= self <= T::MAX, so the safe conversions have to replicate the overflow checks in #codegen_out_of_range exactly

@straight-shoota
Copy link
Member Author

Let's see if #13222 finally fixes it =)

@straight-shoota straight-shoota added this to the 1.8.0 milestone Mar 25, 2023
@straight-shoota
Copy link
Member Author

@straight-shoota straight-shoota removed this from the 1.8.0 milestone Mar 25, 2023
@straight-shoota straight-shoota added this to the 1.8.0 milestone Mar 27, 2023
@straight-shoota straight-shoota merged commit 7cf6aff into crystal-lang:master Mar 28, 2023
@straight-shoota straight-shoota deleted the feature/win-ci-llvm-15 branch March 28, 2023 13:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants