diff --git a/.gitignore b/.gitignore index 3a5188e..ea8abbb 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,4 @@ llamafile.git /.direnv/ */dist/ +.aider* diff --git a/.nix/default.nix b/.nix/default.nix new file mode 100644 index 0000000..8c17a2d --- /dev/null +++ b/.nix/default.nix @@ -0,0 +1,26 @@ +{ + pkgs, + lib, + config, + ... +}: let + # list paths + pkgs-paths-list = lib.fileset.toList (lib.fileset.fromSource (lib.sources.sourceFilesBySuffices ./. [".nix"])); + # no default.nix + filtered-paths-list = builtins.filter (path: builtins.baseNameOf path != "default.nix") pkgs-paths-list; + # filename-extension parsed out + pkgs-paths = + builtins.map + (path: { + name = lib.strings.removeSuffix ".nix" (builtins.baseNameOf path); + path = path; + }) + filtered-paths-list; + # import each path + imported-pkgs = lib.attrsets.mergeAttrsList (builtins.map + (pkg: { + "${pkg.name}" = pkgs.callPackage pkg.path {}; + }) + pkgs-paths); +in + imported-pkgs diff --git a/darm_test/src/main.rs b/darm_test/src/main.rs index 1b87b45..ffd9b3e 100644 --- a/darm_test/src/main.rs +++ b/darm_test/src/main.rs @@ -25,12 +25,12 @@ mod html_elements { } } -struct TestController {} +struct TestaController {} #[controller( state = AppState )] -impl TestController { +impl TestaController { #[route(GET "/")] async fn index(State(_): State) -> impl IntoResponse { maud! { @@ -85,6 +85,9 @@ impl TestController { maud! { h1 { "Item" } + div { + + } p { (format!("{id:?} {amount:?} {offset:?} {state:?}")) } @@ -202,7 +205,7 @@ async fn main() { let listener = tokio::net::TcpListener::bind("0.0.0.0:8000").await.unwrap(); let router: axum::Router = axum::Router::new() - .merge(TestController::into_router(app_state.clone())) + .merge(TestaController::into_router(app_state.clone())) .merge(DistController::into_router(app_state.clone())) .fallback_service(get(handle_404)) .method_not_allowed_fallback(handle_405) diff --git a/flake.nix b/flake.nix index bbac952..4d2b260 100644 --- a/flake.nix +++ b/flake.nix @@ -67,18 +67,19 @@ }); }) ]; + config = { + allowUnfree = true; + rocmSupport = true; + }; pkgs = import nixpkgs { - inherit system overlays; - config = { - allowUnfree = true; - rocmSupport = true; - }; + inherit system overlays config; }; customNodeModules = pkgs.npmlock2nix.v2.node_modules { src = ./.; nodejs = pkgs.nodejs_22; }; buildInputs = with pkgs; [ + aider-chat harfbuzz openssl pango @@ -107,44 +108,46 @@ "gfx1102" "gfx1103" ]; + lib = pkgs.lib; in { apps.devshell = self.outputs.devShells.${system}.default.flakeApp; - packages = { - cargo-leptos = pkgs.callPackage ./.nix/cargo-leptos.nix { }; - # llama-cpp = pkgs.callPackage "${llama-cpp}/.devops/nix/scope.nix" { }; - myllamacpp = with pkgs; - llamaPackages.llama-cpp.overrideDerivation (oldAttrs: { - # speeds up builts by only building for a needed rocmTargets... - cmakeFlags = [ - (lib.cmakeBool "LLAMA_BUILD_SERVER" true) - (lib.cmakeBool "BUILD_SHARED_LIBS" true) - (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true) - (lib.cmakeBool "LLAMA_CURL" true) - (lib.cmakeBool "GGML_NATIVE" true) - (lib.cmakeBool "GGML_BLAS" false) - (lib.cmakeBool "GGML_CUDA" false) - (lib.cmakeBool "GGML_HIP" true) # new one ? kinda undocumented ? - (lib.cmakeBool "GGML_HIPBLAS" true) # seems to be depr - (lib.cmakeBool "GGML_METAL" false) - (lib.cmakeBool "GGML_VULKAN" false) - (lib.cmakeBool "GGML_STATIC" false) - (lib.cmakeBool "GGML_FMA" true) - (lib.cmakeBool "GGML_F16C" true) - (lib.cmakeBool "GGML_AVX2" true) - (lib.cmakeBool "GGML_AVX512" false) - (lib.cmakeFeature "CMAKE_HIP_COMPILER" "${rocmPackages.llvm.clang}/bin/clang") - (lib.cmakeFeature "CMAKE_HIP_ARCHITECTURES" (builtins.concatStringsSep ";" rocmTargets)) - (lib.cmakeFeature "AMDGPU_TARGETS" (builtins.concatStringsSep ";" rocmTargets)) - ]; - }); - }; + packages = + (import ./.nix { inherit pkgs lib config; }) + // { + myllamacpp = with pkgs; + llamaPackages.llama-cpp.overrideDerivation (oldAttrs: { + # speeds up builts by only building for a needed rocmTargets... + cmakeFlags = [ + (lib.cmakeBool "LLAMA_BUILD_SERVER" true) + (lib.cmakeBool "BUILD_SHARED_LIBS" true) + (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true) + (lib.cmakeBool "LLAMA_CURL" true) + (lib.cmakeBool "GGML_NATIVE" true) + (lib.cmakeBool "GGML_BLAS" false) + (lib.cmakeBool "GGML_CUDA" false) + (lib.cmakeBool "GGML_HIP" true) # new one ? kinda undocumented ? + (lib.cmakeBool "GGML_HIPBLAS" true) # seems to be depr + (lib.cmakeBool "GGML_METAL" false) + (lib.cmakeBool "GGML_VULKAN" false) + (lib.cmakeBool "GGML_STATIC" false) + (lib.cmakeBool "GGML_FMA" true) + (lib.cmakeBool "GGML_F16C" true) + (lib.cmakeBool "GGML_AVX2" true) + (lib.cmakeBool "GGML_AVX512" false) + (lib.cmakeFeature "CMAKE_HIP_COMPILER" "${rocmPackages.llvm.clang}/bin/clang") + (lib.cmakeFeature "CMAKE_HIP_ARCHITECTURES" (builtins.concatStringsSep ";" rocmTargets)) + (lib.cmakeFeature "AMDGPU_TARGETS" (builtins.concatStringsSep ";" rocmTargets)) + ]; + }); + }; devShells.default = pkgs.mkShell { packages = with pkgs; [ customNodeModules customRustToolchain self.packages.${system}.myllamacpp + aider-chat bacon binaryen cacert