From 5a799734ddd523027a7d6ef8b0acab6d0b796ec6 Mon Sep 17 00:00:00 2001 From: Marcos Magueta Date: Tue, 7 Jul 2026 16:07:07 -0300 Subject: object manager initial model and sotrage stubs --- flake.nix | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 flake.nix (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..47c6400 --- /dev/null +++ b/flake.nix @@ -0,0 +1,59 @@ +{ + description = "RNT — Relations, Not Tables: an experimental database kernel (OCaml library)"; + + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + + outputs = { self, nixpkgs }: + let + systems = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + + forAllSystems = f: + nixpkgs.lib.genAttrs systems (system: + f (import nixpkgs { inherit system; })); + in + { + packages = forAllSystems (pkgs: + let ocamlPackages = pkgs.ocamlPackages; in + { + default = ocamlPackages.buildDunePackage { + pname = "rnt"; + version = "0.1.0"; + duneVersion = "3"; + src = self; + + propagatedBuildInputs = [ ocamlPackages.batteries ]; + checkInputs = [ ocamlPackages.alcotest ]; + doCheck = true; + + meta = { + description = + "RNT database kernel inspired by the Windows NT object manager"; + license = pkgs.lib.licenses.agpl3Only; + maintainers = [ { name = "Marcos Magueta"; } ]; + }; + }; + }); + + devShells = forAllSystems (pkgs: + let ocamlPackages = pkgs.ocamlPackages; in + { + default = pkgs.mkShell { + inputsFrom = [ self.packages.${pkgs.system}.default ]; + packages = [ + pkgs.dune_3 + ocamlPackages.ocaml + ocamlPackages.ocaml-lsp + ocamlPackages.ocamlformat + ocamlPackages.utop + ocamlPackages.batteries + ocamlPackages.alcotest + ]; + }; + }); + }; +} -- cgit v1.2.3