Personal Nix flake
nixos home-manager nix
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: Add lichen package

+143 -4
+17
flake.lock
··· 1382 1382 "type": "github" 1383 1383 } 1384 1384 }, 1385 + "nixpkgs-hare": { 1386 + "locked": { 1387 + "lastModified": 1769806382, 1388 + "narHash": "sha256-kk27xrW0HNtX5N1h5sbXE0k6A/OHETbau2WmL75gA94=", 1389 + "owner": "lpchaim", 1390 + "repo": "nixpkgs", 1391 + "rev": "e6c0f56a16c7deb4023f1d2a407ad1b68557c724", 1392 + "type": "github" 1393 + }, 1394 + "original": { 1395 + "owner": "lpchaim", 1396 + "ref": "update-hare", 1397 + "repo": "nixpkgs", 1398 + "type": "github" 1399 + } 1400 + }, 1385 1401 "nixpkgs-lib": { 1386 1402 "locked": { 1387 1403 "lastModified": 1761765539, ··· 1762 1778 "nixpkgs": [ 1763 1779 "unstable" 1764 1780 ], 1781 + "nixpkgs-hare": "nixpkgs-hare", 1765 1782 "nixpkgs-schemas": "nixpkgs-schemas", 1766 1783 "nixvim": "nixvim", 1767 1784 "nur": "nur",
+1
flake.nix
··· 44 44 stable.url = "github:NixOS/nixpkgs/nixos-24.11"; 45 45 unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; 46 46 nixpkgs-schemas.url = "github:DeterminateSystems/nix-src/flake-schemas"; 47 + nixpkgs-hare.url = "github:lpchaim/nixpkgs/update-hare"; 47 48 48 49 # Home Manager 49 50 home-manager = {
+17 -4
nix/packages/default.nix
··· 1 - args: let 2 - inherit ((import ../lib args).loaders) callPackageNonDefault; 1 + {...}: let 2 + inherit (import ../lib) mkPkgs; 3 3 in { 4 - perSystem = {self', ...}: let 4 + perSystem = { 5 + inputs', 6 + self', 7 + lib, 8 + system, 9 + ... 10 + }: let 5 11 inherit (self'.legacyPackages) pkgs; 6 12 in { 7 - packages = callPackageNonDefault ./. pkgs; 13 + packages = let 14 + callPackage = lib.callPackageWith pkgs; 15 + in { 16 + lichen = 17 + callPackage 18 + ./lichen/package.nix 19 + {inherit (inputs'.nixpkgs-hare.legacyPackages) hare hareHook;}; 20 + }; 8 21 }; 9 22 }
+22
nix/packages/lichen/001-tests.patch
··· 1 + diff --git a/scripts/run_tests.lua b/scripts/run_tests.lua 2 + index 2b56cbe..9f17f45 100755 3 + --- a/scripts/run_tests.lua 4 + +++ b/scripts/run_tests.lua 5 + @@ -100,7 +100,7 @@ local tests = { 6 + -- issue fixing -- 7 + { src = "fail_outlive_1", code = 1, nocomp = true }, 8 + { src = "fail_outlive_2", code = 1, nocomp = true }, 9 + - { src = "fail_synax_1", code = 1, nocomp = true }, 10 + + { src = "fail_syntax_1", code = 1, nocomp = true }, 11 + { src = "issue_mut_loop", code = 0 }, 12 + { src = "issue_for_slice", code = 0 }, 13 + { src = "issue_lit_arr", code = 0 }, 14 + @@ -272,7 +272,7 @@ local function run_test(t, failed, ex) 15 + ok = exec(bin .. (t.argv or "") .. " > " .. log .. " 2>&1") 16 + end 17 + 18 + - local result = io.open(log):read("a"):gsub("\n", "\\n") 19 + + local result = io.open(log):read("*all"):gsub("\n", "\\n") 20 + local expected = (t.output or ""):gsub("\n", "\\n") 21 + 22 + if (t.code == 0 and not ok) or (t.code ~= 0 and ok) then
+86
nix/packages/lichen/package.nix
··· 1 + { 2 + lib, 3 + stdenv, 4 + fetchFromSourcehut, 5 + gcc, 6 + hare, 7 + hareHook, 8 + lua, 9 + makeWrapper, 10 + qbe, 11 + }: 12 + stdenv.mkDerivation (finalAttrs: rec { 13 + pname = "lichen"; 14 + version = "0.22.0-unstable"; 15 + 16 + src = fetchFromSourcehut { 17 + owner = "~mikaela-md"; 18 + repo = "lcc"; 19 + rev = "04858821e088297c328ee07679b6babbb4b28d68"; 20 + hash = "sha256-Jj+ki1xT+JgsGN1gjobBEfU+Xgeddnbm53Fhyj04f9A="; 21 + }; 22 + 23 + nativeBuildInputs = [ 24 + hareHook 25 + makeWrapper 26 + ]; 27 + 28 + buildInputs = [ 29 + hare 30 + qbe 31 + ]; 32 + 33 + nativeInstallCheckInputs = [ 34 + lua 35 + ]; 36 + 37 + patches = [ 38 + ./001-tests.patch 39 + ]; 40 + 41 + buildPhase = '' 42 + runHook preBuild 43 + 44 + pushd ./src 45 + mkdir -p $out/bin 46 + hare build -o $out/bin/lcc 47 + popd 48 + 49 + runHook postBuild 50 + ''; 51 + 52 + installPhase = '' 53 + runHook preInstall 54 + 55 + wrapProgram $out/bin/lcc \ 56 + --prefix PATH ":" ${lib.makeBinPath [gcc qbe]} \ 57 + --add-flags "-std $out/lib" 58 + 59 + mkdir -p $out/lib 60 + cp -r ${src}/lib/. $out/lib/ 61 + rm $out/lib/README.md 62 + 63 + runHook postInstall 64 + ''; 65 + 66 + doInstallCheck = true; 67 + installCheckPhase = '' 68 + runHook preCheck 69 + 70 + set -e 71 + pushd ./scripts 72 + export PATH="$PATH:$out/bin" 73 + ${lib.getExe lua} ./run_tests.lua 74 + popd 75 + 76 + runHook postCheck 77 + ''; 78 + 79 + meta = { 80 + description = "Lichen compiler"; 81 + homepage = "https://git.sr.ht/~mikaela-md/lcc"; 82 + changelog = "https://git.sr.ht/~mikaela-md/lcc/commit/${src.rev}"; 83 + platforms = lib.platforms.unix; 84 + mainProgram = "lcc"; 85 + }; 86 + })