This commit is contained in:
Sidharth Kulkarni 2026-05-07 22:52:22 -07:00
parent c8e43990ed
commit 9d67af9901
Signed by: skulk
SSH key fingerprint: SHA256:Jby+S9d1WmwqnXIrngHgccYNHz+cYquxN1zm3ym3Kbg
6 changed files with 97 additions and 7 deletions

2
.gitignore vendored
View file

@ -1,3 +1,3 @@
dist-newstyle dist-newstyle
.direnv .direnv
*.cabal *.cabal

73
flake.lock generated
View file

@ -16,7 +16,62 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"ghc-wasm-meta": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
},
"locked": {
"host": "gitlab.haskell.org",
"lastModified": 1775305067,
"narHash": "sha256-KFWRYVYPgsXu51stX/7/416qc31HFltfQiHPc6nEmH0=",
"owner": "haskell-wasm",
"repo": "ghc-wasm-meta",
"rev": "60098a5076557e327b326a1a3ba3b5fb4fec1e49",
"type": "gitlab"
},
"original": {
"host": "gitlab.haskell.org",
"owner": "haskell-wasm",
"repo": "ghc-wasm-meta",
"type": "gitlab"
}
},
"nixpkgs": { "nixpkgs": {
"locked": {
"lastModified": 1774399958,
"narHash": "sha256-Q+g1Np4wyNYpylt8RFM8UprAmyRoA3q3EZj7lQV+ZuQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "735a15e91bcb1b3e0883a91d3c9dfd4475d1bc54",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-25.11-darwin",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1777268161, "lastModified": 1777268161,
"narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=", "narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=",
@ -35,7 +90,23 @@
"root": { "root": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"nixpkgs": "nixpkgs" "ghc-wasm-meta": "ghc-wasm-meta",
"nixpkgs": "nixpkgs_2"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
} }
} }
}, },

View file

@ -3,6 +3,8 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
ghc-wasm-meta.url = "gitlab:haskell-wasm/ghc-wasm-meta?host=gitlab.haskell.org";
flake-compat = { flake-compat = {
url = "github:NixOS/flake-compat"; url = "github:NixOS/flake-compat";
flake = false; flake = false;
@ -10,11 +12,20 @@
}; };
outputs = outputs =
{ self, nixpkgs, ... }: {
self,
nixpkgs,
ghc-wasm-meta,
...
}:
let let
pkgs = nixpkgs.legacyPackages.x86_64-linux; pkgs = nixpkgs.legacyPackages.x86_64-linux;
in in
{ {
devShells.x86_64-linux.default = pkgs.callPackage ./shell.nix { }; inherit ghc-wasm-meta;
devShells.x86_64-linux.default = pkgs.callPackage ./shell.nix {
wasm32-wasi-cabal = ghc-wasm-meta.packages.x86_64-linux.wasm32-wasi-cabal-9_14;
wasm32-wasi-ghc = ghc-wasm-meta.packages.x86_64-linux.wasm32-wasi-ghc-9_14;
};
}; };
} }

View file

@ -100,7 +100,7 @@ test-suite numberspec-test
OverloadedLabels OverloadedLabels
NamedFieldPuns NamedFieldPuns
TypeOperators TypeOperators
ghc-options: -Wall -threaded -O0 ghc-options: -Wall -O0
build-depends: build-depends:
QuickCheck QuickCheck
, array , array

View file

@ -31,6 +31,8 @@ default-extensions:
- NamedFieldPuns - NamedFieldPuns
- TypeOperators - TypeOperators
build-type: Simple
library: library:
source-dirs: source-dirs:
- src - src
@ -43,7 +45,7 @@ executable:
tests: tests:
numberspec-test: numberspec-test:
main: "Main.hs" main: "Main.hs"
ghc-options: "-threaded -O0" ghc-options: "-O0"
source-dirs: source-dirs:
- test - test

View file

@ -3,6 +3,8 @@
haskell, haskell,
zlib, zlib,
watchexec, watchexec,
wasm32-wasi-cabal,
wasm32-wasi-ghc,
}: }:
haskellPackages.developPackage { haskellPackages.developPackage {
name = "numbersquare"; name = "numbersquare";
@ -12,7 +14,11 @@ haskellPackages.developPackage {
addBuildTools = addBuildTools =
drv: drv:
haskell.lib.addBuildTools drv ( haskell.lib.addBuildTools drv (
[ watchexec ] [
watchexec
wasm32-wasi-cabal
wasm32-wasi-ghc
]
++ (with haskellPackages; [ ++ (with haskellPackages; [
fourmolu fourmolu
haskell-language-server haskell-language-server