nix/ci: add and enable llvm-17
Still working on this, need to figure out which failures are for all future revisions and which are for LLVM-17 only. These timeouts in particular seem like an LLVM-17 bug. Will see what 18 does and if they're fine on 18 will skip the tests for 17.
Most of the issues are weird DWARF (old drgn issues mentioned elsewhere) and strange timeouts/linking things. All fine to skip, even though it's not ideal.
The remaining test failure that seems legitimate is OidIntegration.cycles_raw_ptr.
This can be reproduced with JIT logging with: build/test/integration/integration_test_runner --gtest_filter='OidIntegration.cycles_raw_ptr' -P --enable-feature jit-logging. The generated code looks totally fine to my eye and should be following the raw pointers. But the JIT log disagrees:
I20250804 14:25:20.697924 140167335514880 OIDebugger.cpp:267] Outputting JIT logs:
I20250804 14:25:20.697933 140167335514880 OIDebugger.cpp:270] JITLOG: RawNode @00007ffd84314300
I20250804 14:25:20.697937 140167335514880 OIDebugger.cpp:270] JITLOG: value_0 @00007ffd84314300
I20250804 14:25:20.697940 140167335514880 OIDebugger.cpp:270] JITLOG: obj @00007ffd84314300
I20250804 14:25:20.697943 140167335514880 OIDebugger.cpp:270] JITLOG: next_2 @00007ffd84314308
I20250804 14:25:20.697946 140167335514880 OIDebugger.cpp:270] JITLOG: ptr val @0000000000000000
I20250804 14:25:20.697950 140167335514880 OIDebugger.cpp:276] Finished outputting JIT logs.
And treebuilder generates as if there are no next entries, causing the test to fail. Need to spend a bit more time looking at this specific one, I don't know how LLVM-17 could have caused it to fail - maybe the pointer tracking broke?
Hi @JakeHillion!
Thank you for your pull request.
We require contributors to sign our Contributor License Agreement, and yours needs attention.
You currently have a record in our system, but the CLA is no longer valid, and will need to be resubmitted.
Process
In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.
Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.
If you have received this in error or have any questions, please contact us at [email protected]. Thanks!