diff --git a/cabal.project b/cabal.project new file mode 100644 index 0000000000000000000000000000000000000000..e5f5f2e72c0a30f3ffab7117a1aaacb1772cc513 --- /dev/null +++ b/cabal.project @@ -0,0 +1,3 @@ +packages: + rtree/ + rtree-c/ diff --git a/example/README.md b/example/README.md new file mode 100644 index 0000000000000000000000000000000000000000..345e6aef713208c8d50cdea23b85e6ad831f0449 --- /dev/null +++ b/example/README.md @@ -0,0 +1 @@ +Test diff --git a/flake.lock b/flake.lock index f37ab3b8df56dc2129128aa0042e921238ce7633..b331d354adada3b25724bf48916a76794baf7f28 100644 --- a/flake.lock +++ b/flake.lock @@ -34,6 +34,21 @@ "type": "github" } }, + "nix-filter": { + "locked": { + "lastModified": 1705332318, + "narHash": "sha256-kcw1yFeJe9N4PjQji9ZeX47jg0p9A0DuU4djKvg1a7I=", + "owner": "numtide", + "repo": "nix-filter", + "rev": "3449dc925982ad46246cfc36469baf66e1b64f17", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "nix-filter", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1699065553, @@ -54,6 +69,7 @@ "inputs": { "flake-utils": "flake-utils", "language-c": "language-c", + "nix-filter": "nix-filter", "nixpkgs": "nixpkgs" } }, diff --git a/flake.nix b/flake.nix index eee7af254f2dbf31073e079a95fa0c02267072c0..d510940e1df830bb739b544cd523610e1625db01 100644 --- a/flake.nix +++ b/flake.nix @@ -2,6 +2,7 @@ inputs = { nixpkgs.url = github:nixos/nixpkgs/nixpkgs-unstable; flake-utils.url = github:numtide/flake-utils; + nix-filter.url = github:numtide/nix-filter; language-c = { url = github:kalhauge/language-c; flake = false; @@ -11,16 +12,24 @@ self, nixpkgs, flake-utils, + nix-filter, ... } @ inputs: let - packages = final: p: { - "rtree" = p.callCabal2nixWithOptions "rtree" "${self}" "" {}; - "language-c" = - final.haskell.lib.overrideCabal - (p.callCabal2nixWithOptions "language-c" inputs.language-c "" {}) { - doCheck = false; - }; + load = p: n: { + "${n}" = + p.callCabal2nixWithOptions n + "${self}/${n}" "" {}; }; + packages = final: p: + { + "language-c" = + final.haskell.lib.overrideCabal + (p.callCabal2nixWithOptions "language-c" inputs.language-c "" {}) { + doCheck = false; + }; + } + // load p "rtree" + // load p "rtree-c"; overlays = final: prev: { haskellPackages = prev.haskellPackages.extend (p: _: packages final p); }; @@ -40,6 +49,7 @@ packages = { default = hpkgs.rtree; rtree = hpkgs.rtree; + rtree-c = hpkgs.rtree-c; }; devShells = let nativeBuildInputs = with hpkgs; [ @@ -54,8 +64,8 @@ default = hpkgs.shellFor { - name = "rtree-shell"; - packages = p: [p.rtree]; + name = "rtree-shells"; + packages = p: [p.rtree p.rtree-c]; doBenchmark = true; inherit nativeBuildInputs withHoogle; }; diff --git a/hie.yaml b/hie.yaml deleted file mode 100644 index 8764232366804781ea91e3786e62d0a3e2e19d3c..0000000000000000000000000000000000000000 --- a/hie.yaml +++ /dev/null @@ -1,8 +0,0 @@ -cradle: - cabal: - - path: "./src" - component: "lib:rtree" - - path: "./bin/rtree-c" - component: "exe:rtree-c" - - path: "./test/src" - component: "test:rtree-test" diff --git a/bin/rtree-c/Main.hs b/rtree-c/bin/Main.hs similarity index 100% rename from bin/rtree-c/Main.hs rename to rtree-c/bin/Main.hs diff --git a/package.yaml b/rtree-c/package.yaml similarity index 78% rename from package.yaml rename to rtree-c/package.yaml index 8f266d55c204a2388d6b1b71dfd29e4fe0b48816..6a2525f974d9eb93aec586d4ef79c46b3b9c04a4 100644 --- a/package.yaml +++ b/rtree-c/package.yaml @@ -1,4 +1,4 @@ -name: rtree +name: rtree-c # version: 0.1.0 # synopsis: synopsis # maintainer: maintainer <email> @@ -9,27 +9,19 @@ ghc-options: -Wall -fno-warn-incomplete-uni-patterns dependencies: - base >= 4.9 && < 5 - - transformers - - free - - vector - - data-fix - - mtl - - directory - - containers - - text - - pretty-simple + - rtree + - language-c library: source-dirs: src executables: rtree-c: - source-dirs: bin/rtree-c + source-dirs: bin/ main: Main.hs dependencies: - - rtree + - rtree-c - optparse-applicative - - language-c - typed-process - directory - pretty @@ -44,6 +36,7 @@ tests: main: Main.hs dependencies: - rtree + - rtree-c # - template # - hedgehog # - hspec diff --git a/rtree.cabal b/rtree-c/rtree-c.cabal similarity index 65% rename from rtree.cabal rename to rtree-c/rtree-c.cabal index af80d3de6fa72079820a31a4c8b3fc8499e35e95..4d7d26cd37acc634ffe966104c739abeb09f6438 100644 --- a/rtree.cabal +++ b/rtree-c/rtree-c.cabal @@ -4,80 +4,57 @@ cabal-version: 1.12 -- -- see: https://github.com/sol/hpack -name: rtree +name: rtree-c version: 0.0.0 build-type: Simple library exposed-modules: - Control.Monad.Reduce - Control.RTree - Data.Valuation + ReduceC other-modules: - Paths_rtree + Paths_rtree_c hs-source-dirs: src ghc-options: -Wall -fno-warn-incomplete-uni-patterns build-depends: base >=4.9 && <5 - , containers - , data-fix - , directory - , free - , mtl - , pretty-simple - , text - , transformers - , vector + , language-c + , rtree default-language: Haskell2010 executable rtree-c main-is: Main.hs other-modules: - ReduceC - Paths_rtree + Paths_rtree_c hs-source-dirs: - bin/rtree-c + bin/ ghc-options: -Wall -fno-warn-incomplete-uni-patterns build-depends: base >=4.9 && <5 , co-log - , containers - , data-fix , directory , filepath - , free , language-c - , mtl , optparse-applicative , pretty - , pretty-simple , rtree + , rtree-c , text , time - , transformers , typed-process - , vector default-language: Haskell2010 test-suite rtree-test type: exitcode-stdio-1.0 main-is: Main.hs other-modules: - Paths_rtree + Paths_rtree_c hs-source-dirs: test/src ghc-options: -Wall -fno-warn-incomplete-uni-patterns build-depends: base >=4.9 && <5 - , containers - , data-fix - , directory - , free - , mtl - , pretty-simple + , language-c , rtree - , text - , transformers - , vector + , rtree-c default-language: Haskell2010 diff --git a/bin/rtree-c/ReduceC.hs b/rtree-c/src/ReduceC.hs similarity index 100% rename from bin/rtree-c/ReduceC.hs rename to rtree-c/src/ReduceC.hs diff --git a/test/src/Main.hs b/rtree-c/test/src/Main.hs similarity index 50% rename from test/src/Main.hs rename to rtree-c/test/src/Main.hs index d2a6c17d9e2e241440f4117b53cbc0198af82f0b..76a9bdb5d48831da2e59c811ecbcbb5a379bdfb5 100644 --- a/test/src/Main.hs +++ b/rtree-c/test/src/Main.hs @@ -1,3 +1 @@ - -main :: IO () main = pure () diff --git a/README.md b/rtree/README.md similarity index 100% rename from README.md rename to rtree/README.md diff --git a/rtree/package.yaml b/rtree/package.yaml new file mode 100644 index 0000000000000000000000000000000000000000..0330af896ba874c54ab5a09673c972920df74ed2 --- /dev/null +++ b/rtree/package.yaml @@ -0,0 +1,20 @@ +name: rtree +# version: 0.1.0 +# synopsis: synopsis +# maintainer: maintainer <email> +# category: categories +# extra-source-files: [] + +ghc-options: -Wall -fno-warn-incomplete-uni-patterns + +dependencies: + - base >= 4.9 && < 5 + - transformers + - vector + - mtl + - containers + - text + +library: + source-dirs: src + diff --git a/rtree/rtree.cabal b/rtree/rtree.cabal new file mode 100644 index 0000000000000000000000000000000000000000..3cf39c8a6b2bd226886a956def1807e6f1f0eddc --- /dev/null +++ b/rtree/rtree.cabal @@ -0,0 +1,28 @@ +cabal-version: 1.12 + +-- This file has been generated from package.yaml by hpack version 0.35.2. +-- +-- see: https://github.com/sol/hpack + +name: rtree +version: 0.0.0 +build-type: Simple + +library + exposed-modules: + Control.Monad.Reduce + Control.RTree + Data.Valuation + other-modules: + Paths_rtree + hs-source-dirs: + src + ghc-options: -Wall -fno-warn-incomplete-uni-patterns + build-depends: + base >=4.9 && <5 + , containers + , mtl + , text + , transformers + , vector + default-language: Haskell2010 diff --git a/src/Control/Monad/Reduce.hs b/rtree/src/Control/Monad/Reduce.hs similarity index 100% rename from src/Control/Monad/Reduce.hs rename to rtree/src/Control/Monad/Reduce.hs diff --git a/src/Control/RTree.hs b/rtree/src/Control/RTree.hs similarity index 100% rename from src/Control/RTree.hs rename to rtree/src/Control/RTree.hs diff --git a/src/Data/Valuation.hs b/rtree/src/Data/Valuation.hs similarity index 100% rename from src/Data/Valuation.hs rename to rtree/src/Data/Valuation.hs diff --git a/test/data/.gitignore b/test/data/.gitignore deleted file mode 100644 index b86ba2e4d0922a2d3345241809e3e2e5d05a4a18..0000000000000000000000000000000000000000 --- a/test/data/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -file2.c -*.bak diff --git a/test/data/simple1.c b/test/data/simple1.c deleted file mode 100644 index 206e19854fabf5ac2fa56dd2f200e4fb279f588f..0000000000000000000000000000000000000000 --- a/test/data/simple1.c +++ /dev/null @@ -1,7 +0,0 @@ -extern int printf (const char *, ...); - -int main (void) -{ - printf("hello"); - return 0; -} diff --git a/test/data/typedef.c b/test/data/typedef.c deleted file mode 100644 index 98d10336a42d3a501d4f3033515aeeee61a2f655..0000000000000000000000000000000000000000 --- a/test/data/typedef.c +++ /dev/null @@ -1,6 +0,0 @@ -typedef const int size_t; -void main() -{ - size_t a = 0; - return 0; -} \ No newline at end of file diff --git a/test/test.sh b/test/test.sh deleted file mode 100755 index 2cfc4fb41e8db6554cd188a531713f181181b853..0000000000000000000000000000000000000000 --- a/test/test.sh +++ /dev/null @@ -1 +0,0 @@ -cabal test --test-options='-o test.svg -w 600 -h 400' --test-show-details=streaming