Skip to content

cling: 1.0 -> 1.2-unstable-2025-09-01#439740

Closed
emilazy wants to merge 1 commit intoNixOS:masterfrom
emilazy:push-zvwmuknqumxp
Closed

cling: 1.0 -> 1.2-unstable-2025-09-01#439740
emilazy wants to merge 1 commit intoNixOS:masterfrom
emilazy:push-zvwmuknqumxp

Conversation

@emilazy
Copy link
Member

@emilazy emilazy commented Sep 2, 2025

@thomasjm I saw you were working on updating Cling in Nixpkgs in root-project/cling#556. I’ve also been poking at the package in preparation for the removal of LLVM 12–17 in Nixpkgs 25.11. I didn’t manage to get it fully working yet, but I thought I’d put up what I have so far for you to look at.

I’ve reused our existing LLVM build infrastructure, and was hoping to replace the existing wrapper with our normal cc-wrapper logic, but there is some weirdness around include paths – I’ve tried to bypass Cling’s somewhat dodgy logic to infer include paths itself, but that produced strange results where it would be unable to find any include directories other than the most recently‐added one when parsing an internal #include <new> expression, and with -noruntime the include paths it searches seemed to change from the first line it processes and all subsequent lines.

Of course, just a simple bump to a version that doesn’t pull in the old LLVM would be sufficient, so those issues may not be a blocker if the previous wrapper still works fine. I’d be happy to review your own work – bumping to the latest Git commit like this, or backporting the relevant patch to the stable release, per your preference – if you want to put up your own PR. But I thought it would be good to share this now.

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

Add a 👍 reaction to pull requests you find important.

@emilazy emilazy requested a review from thomasjm September 2, 2025 23:15
@emilazy
Copy link
Member Author

emilazy commented Sep 2, 2025

Ah, yes, and something would need doing about xeus-cling… in particular in regards to the wrapper flags stuff. So it is possible that “keep the existing custom wrapper but switch to the Nixpkgs LLVM build” is the happy middle ground here. I’m happy with whatever gets rid of the old llvmPackages_* dependency, in the end; I just got carried away here trying to do some clean‐up.

@thomasjm
Copy link
Contributor

thomasjm commented Sep 2, 2025

Oh wow, very good timing. I've got Cling working fine and I'm working on xeus-cling now. I'll go ahead and open the PR that has Cling working.

@thomasjm
Copy link
Contributor

thomasjm commented Sep 2, 2025

Here you go: #439741

@emilazy emilazy mentioned this pull request Sep 3, 2025
13 tasks
@eihqnh eihqnh mentioned this pull request Sep 3, 2025
1 task
@emilazy
Copy link
Member Author

emilazy commented Sep 4, 2025

Closing as #439741 is merged; hopefully the work here can still be useful in the future if someone wants to pick it up.

@emilazy emilazy closed this Sep 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants