diff --git a/Makefile b/Makefile index f3461a9..309c9b9 100644 --- a/Makefile +++ b/Makefile @@ -1,20 +1,20 @@ all: quox quox: - (cd exe; sirdi build) - ln -sf exe/build/exec/main $@ + nix build '.#quox-exe' + ln -sfL $$(realpath result/bin/quox) quox quox-tests: - (cd tests; sirdi build) - ln -sf tests/build/exec/main $@ + nix build '.#quox-tests' + ln -sfL $$(realpath result/bin/quox-tests) quox-tests .PHONY: lib lib: - sirdi build + nix build '.#quox' .PHONY: test -test: quox-tests - ./quox-tests -V 14 +test: + nix run -- '.#quox-tests' -V 14 .PHONY: prove prove: quox-tests @@ -22,7 +22,4 @@ prove: quox-tests .PHONY: clean clean: - $(RM) quox quox-tests - sirdi clean - (cd exe; sirdi clean) - (cd tests; sirdi clean) + rm -f quox quox-tests result diff --git a/flake.nix b/flake.nix index 8084b98..e356ebd 100644 --- a/flake.nix +++ b/flake.nix @@ -14,17 +14,16 @@ inherit system; overlays = [ idris2-pkgs.overlay ]; }; - inherit (pkgs.idris2-pkgs._builders) idrisPackage devEnv; - quox = idrisPackage ./. { }; + + inherit (pkgs.idris2-pkgs._builders) idrisPackage; + + quox = idrisPackage ./lib { }; quox-exe = idrisPackage ./exe { extraPkgs.quox = quox; }; quox-tests = idrisPackage ./tests { extraPkgs.quox = quox; }; in { - defaultPackage = quox-exe; - packages = { inherit quox quox-exe quox-tests; }; - - devShell = pkgs.mkShell { buildInputs = [ (devEnv quox) ]; }; + defaultPackage = quox; } ); } diff --git a/quox.ipkg b/lib/quox.ipkg similarity index 100% rename from quox.ipkg rename to lib/quox.ipkg diff --git a/src/Quox/Context.idr b/lib/src/Quox/Context.idr similarity index 100% rename from src/Quox/Context.idr rename to lib/src/Quox/Context.idr diff --git a/src/Quox/Equal.idr b/lib/src/Quox/Equal.idr similarity index 100% rename from src/Quox/Equal.idr rename to lib/src/Quox/Equal.idr diff --git a/src/Quox/Error.idr b/lib/src/Quox/Error.idr similarity index 100% rename from src/Quox/Error.idr rename to lib/src/Quox/Error.idr diff --git a/src/Quox/Lexer.idr b/lib/src/Quox/Lexer.idr similarity index 100% rename from src/Quox/Lexer.idr rename to lib/src/Quox/Lexer.idr diff --git a/src/Quox/Name.idr b/lib/src/Quox/Name.idr similarity index 100% rename from src/Quox/Name.idr rename to lib/src/Quox/Name.idr diff --git a/src/Quox/NatExtra.idr b/lib/src/Quox/NatExtra.idr similarity index 100% rename from src/Quox/NatExtra.idr rename to lib/src/Quox/NatExtra.idr diff --git a/src/Quox/OPE.idr b/lib/src/Quox/OPE.idr similarity index 100% rename from src/Quox/OPE.idr rename to lib/src/Quox/OPE.idr diff --git a/src/Quox/Pretty.idr b/lib/src/Quox/Pretty.idr similarity index 100% rename from src/Quox/Pretty.idr rename to lib/src/Quox/Pretty.idr diff --git a/src/Quox/Reduce.idr b/lib/src/Quox/Reduce.idr similarity index 100% rename from src/Quox/Reduce.idr rename to lib/src/Quox/Reduce.idr diff --git a/src/Quox/Syntax.idr b/lib/src/Quox/Syntax.idr similarity index 100% rename from src/Quox/Syntax.idr rename to lib/src/Quox/Syntax.idr diff --git a/src/Quox/Syntax/Dim.idr b/lib/src/Quox/Syntax/Dim.idr similarity index 100% rename from src/Quox/Syntax/Dim.idr rename to lib/src/Quox/Syntax/Dim.idr diff --git a/src/Quox/Syntax/DimEq.idr b/lib/src/Quox/Syntax/DimEq.idr similarity index 100% rename from src/Quox/Syntax/DimEq.idr rename to lib/src/Quox/Syntax/DimEq.idr diff --git a/src/Quox/Syntax/Qty.idr b/lib/src/Quox/Syntax/Qty.idr similarity index 100% rename from src/Quox/Syntax/Qty.idr rename to lib/src/Quox/Syntax/Qty.idr diff --git a/src/Quox/Syntax/Shift.idr b/lib/src/Quox/Syntax/Shift.idr similarity index 100% rename from src/Quox/Syntax/Shift.idr rename to lib/src/Quox/Syntax/Shift.idr diff --git a/src/Quox/Syntax/Subst.idr b/lib/src/Quox/Syntax/Subst.idr similarity index 100% rename from src/Quox/Syntax/Subst.idr rename to lib/src/Quox/Syntax/Subst.idr diff --git a/src/Quox/Syntax/Term.idr b/lib/src/Quox/Syntax/Term.idr similarity index 100% rename from src/Quox/Syntax/Term.idr rename to lib/src/Quox/Syntax/Term.idr diff --git a/src/Quox/Syntax/Term/Base.idr b/lib/src/Quox/Syntax/Term/Base.idr similarity index 100% rename from src/Quox/Syntax/Term/Base.idr rename to lib/src/Quox/Syntax/Term/Base.idr diff --git a/src/Quox/Syntax/Term/Pretty.idr b/lib/src/Quox/Syntax/Term/Pretty.idr similarity index 100% rename from src/Quox/Syntax/Term/Pretty.idr rename to lib/src/Quox/Syntax/Term/Pretty.idr diff --git a/src/Quox/Syntax/Term/Reduce.idr b/lib/src/Quox/Syntax/Term/Reduce.idr similarity index 100% rename from src/Quox/Syntax/Term/Reduce.idr rename to lib/src/Quox/Syntax/Term/Reduce.idr diff --git a/src/Quox/Syntax/Term/Split.idr b/lib/src/Quox/Syntax/Term/Split.idr similarity index 100% rename from src/Quox/Syntax/Term/Split.idr rename to lib/src/Quox/Syntax/Term/Split.idr diff --git a/src/Quox/Syntax/Term/Subst.idr b/lib/src/Quox/Syntax/Term/Subst.idr similarity index 100% rename from src/Quox/Syntax/Term/Subst.idr rename to lib/src/Quox/Syntax/Term/Subst.idr diff --git a/src/Quox/Syntax/Universe.idr b/lib/src/Quox/Syntax/Universe.idr similarity index 100% rename from src/Quox/Syntax/Universe.idr rename to lib/src/Quox/Syntax/Universe.idr diff --git a/src/Quox/Syntax/Var.idr b/lib/src/Quox/Syntax/Var.idr similarity index 100% rename from src/Quox/Syntax/Var.idr rename to lib/src/Quox/Syntax/Var.idr diff --git a/src/Quox/Token.idr b/lib/src/Quox/Token.idr similarity index 100% rename from src/Quox/Token.idr rename to lib/src/Quox/Token.idr diff --git a/src/Quox/Typechecker.idr b/lib/src/Quox/Typechecker.idr similarity index 100% rename from src/Quox/Typechecker.idr rename to lib/src/Quox/Typechecker.idr diff --git a/src/Quox/Typing.idr b/lib/src/Quox/Typing.idr similarity index 100% rename from src/Quox/Typing.idr rename to lib/src/Quox/Typing.idr