From 01b3adf56ad6f292e0cf84351cb1a49d39bc8cf6 Mon Sep 17 00:00:00 2001 From: Luke Boswell Date: Tue, 23 Jul 2024 20:35:43 +1000 Subject: [PATCH] start with flake updates update nixpkgs to 24.05 fixup --- .llvmenv | 2 +- Cargo.lock | 27 ++++++++++++++++++++------- Cargo.toml | 4 +--- flake.lock | 23 ++++++++++------------- flake.nix | 13 +++++++------ nix/builder.nix | 3 +-- nix/compile-deps.nix | 4 ++-- 7 files changed, 42 insertions(+), 34 deletions(-) diff --git a/.llvmenv b/.llvmenv index 946789e619..7eae4e2e91 100644 --- a/.llvmenv +++ b/.llvmenv @@ -1 +1 @@ -16.0.0 +18.0.0 diff --git a/Cargo.lock b/Cargo.lock index e44c1472b9..d53058388b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -131,6 +131,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + [[package]] name = "arrayref" version = "0.3.7" @@ -1313,8 +1319,8 @@ checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "inkwell" -version = "0.2.0" -source = "git+https://github.com/roc-lang/inkwell?branch=inkwell-llvm-16#d1a596391894933aa1f0f91ec87187e47917cf86" +version = "0.4.0" +source = "git+https://github.com/TheDan64/inkwell?tag=0.4.0#ad2a27dd660fc7ddb6144bb0865267e02f192dd5" dependencies = [ "either", "inkwell_internals", @@ -1326,8 +1332,8 @@ dependencies = [ [[package]] name = "inkwell_internals" -version = "0.8.0" -source = "git+https://github.com/roc-lang/inkwell?branch=inkwell-llvm-16#d1a596391894933aa1f0f91ec87187e47917cf86" +version = "0.9.0" +source = "git+https://github.com/TheDan64/inkwell?tag=0.4.0#ad2a27dd660fc7ddb6144bb0865267e02f192dd5" dependencies = [ "proc-macro2", "quote", @@ -1470,14 +1476,15 @@ checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" [[package]] name = "llvm-sys" -version = "160.1.3" +version = "170.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf51981ac0622b10fe4790763e3de1f3d68a0ee4222e03accaaab6731bd508d" +checksum = "bb8b6d5671d471fec5010c24daa7c031e172bfaab1c48497ef6185c75eed88a5" dependencies = [ + "anyhow", "cc", "lazy_static", "libc", - "regex", + "regex-lite", "semver", ] @@ -2111,6 +2118,12 @@ dependencies = [ "regex-syntax 0.8.2", ] +[[package]] +name = "regex-lite" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" + [[package]] name = "regex-syntax" version = "0.6.29" diff --git a/Cargo.toml b/Cargo.toml index fd721ed6da..d51f671c7f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,9 +70,7 @@ version = "0.0.1" # change the tag value in this Cargo.toml to point to that tag, and `cargo update`. # This way, GitHub Actions works and nobody's builds get broken. # TODO: Switch this back to roc-lang/inkwell once it is updated -inkwell = { git = "https://github.com/roc-lang/inkwell", branch = "inkwell-llvm-16", features = [ - "llvm16-0", -] } +inkwell = { git = "https://github.com/TheDan64/inkwell", tag = "0.4.0", features = ["llvm17-0"] } arrayvec = "0.7.2" # update roc_std/Cargo.toml on change backtrace = "0.3.67" diff --git a/flake.lock b/flake.lock index 511c9adf18..442b0e730e 100644 --- a/flake.lock +++ b/flake.lock @@ -44,11 +44,11 @@ ] }, "locked": { - "lastModified": 1710868679, - "narHash": "sha256-V1o2bCZdeYKP/0zgVp4EN0KUjMItAMk6J7SvCXUI5IU=", + "lastModified": 1713543440, + "narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=", "owner": "guibou", "repo": "nixGL", - "rev": "d709a8abcde5b01db76ca794280745a43c8662be", + "rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a", "type": "github" }, "original": { @@ -59,17 +59,17 @@ }, "nixpkgs": { "locked": { - "lastModified": 1712163089, - "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", + "lastModified": 1717179513, + "narHash": "sha256-vboIEwIQojofItm2xGCdZCzW96U85l9nDW3ifMuAIdM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "fd281bd6b7d3e32ddfa399853946f782553163b5", + "rev": "63dacb46bf939521bdc93981b4cbb7ecb58427a0", "type": "github" }, "original": { "owner": "nixos", "repo": "nixpkgs", - "rev": "fd281bd6b7d3e32ddfa399853946f782553163b5", + "rev": "63dacb46bf939521bdc93981b4cbb7ecb58427a0", "type": "github" } }, @@ -84,19 +84,16 @@ }, "rust-overlay": { "inputs": { - "flake-utils": [ - "flake-utils" - ], "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1713150335, - "narHash": "sha256-Ic7zCPfiSYc9nFFp+E44WFk3TBJ99J/uPZ4QXX+uPPw=", + "lastModified": 1721701191, + "narHash": "sha256-nM4szL90VeZHZEC5rFfaiiPNTVOmsihdtk2QSP1l37I=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "b186d85e747e2b7bee220ec95839fb66c868dc47", + "rev": "4674ff2c2e5423a0cebe16e61aa874c359306af4", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index b8e952c3f9..0a0113cc95 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "Roc flake"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs?rev=fd281bd6b7d3e32ddfa399853946f782553163b5"; + nixpkgs.url = "github:nixos/nixpkgs?rev=63dacb46bf939521bdc93981b4cbb7ecb58427a0"; # rust from nixpkgs has some libc problems, this is patched in the rust-overlay rust-overlay = { @@ -72,8 +72,11 @@ sharedInputs = (with pkgs; [ # build libraries cmake - llvmPkgs.llvm.dev - llvmPkgs.clang + # faster builds - see https://github.com/roc-lang/roc/blob/main/BUILDING_FROM_SOURCE.md#use-lld-for-the-linker + # provides lld + llvmPkgs.bintools-unwrapped + # provides clang + llvmPkgs.clangUseLLVM pkg-config zigPkg # roc builtins are implemented in zig, see compiler/builtins/bitcode/ # lib deps @@ -81,8 +84,6 @@ libxml2 ncurses zlib - # faster builds - see https://github.com/roc-lang/roc/blob/main/BUILDING_FROM_SOURCE.md#use-lld-for-the-linker - llvmPkgs.lld rocBuild.rust-shell perl # ./ci/update_basic_cli_url.sh ]); @@ -133,7 +134,7 @@ 1; # to run the GUI examples with NVIDIA's closed source drivers shellHook = '' - export LLVM_SYS_${llvmMajorMinorStr}_PREFIX="${llvmPkgs.llvm.dev}" + export LLVM_SYS_${llvmMajorMinorStr}_PREFIX="${llvmPkgs.clangUseLLVM.out}" ${aliases} '' + pkgs.lib.optionalString (system == "aarch64-darwin") '' export RUSTFLAGS="-C link-arg=-lc++abi" diff --git a/nix/builder.nix b/nix/builder.nix index 31fc1df682..ce8ad30ac2 100644 --- a/nix/builder.nix +++ b/nix/builder.nix @@ -45,8 +45,7 @@ rustPlatform.buildRustPackage { git pkg-config python3 - llvmPkgs.clang - llvmPkgs.llvm.dev + llvmPkgs.clangUseLLVM llvmPkgs.bintools-unwrapped # contains lld zigPkg ]); diff --git a/nix/compile-deps.nix b/nix/compile-deps.nix index 59bf6b2086..f2e0574fdf 100644 --- a/nix/compile-deps.nix +++ b/nix/compile-deps.nix @@ -1,7 +1,7 @@ { pkgs }: let - zigPkg = pkgs.zig_0_11; - llvmPkgs = pkgs.llvmPackages_16; + zigPkg = pkgs.zig; + llvmPkgs = pkgs.llvmPackages_17; llvmVersion = builtins.splitVersion llvmPkgs.release_version; llvmMajorMinorStr = builtins.elemAt llvmVersion 0 + builtins.elemAt llvmVersion 1; # nix does not store libs in /usr/lib or /lib