diff --git a/flake.nix b/flake.nix index ea63194..17adf31 100644 --- a/flake.nix +++ b/flake.nix @@ -10,7 +10,6 @@ inherit system; }; shake = pkgs.callPackage ./shake-wrapper.nix {}; - rustslop = pkgs.callPackage ./rustslop {}; in { devShells.${system}.default = pkgs.mkShell { packages = [ @@ -20,11 +19,8 @@ pkgs.wasmtime pkgs.wasm-tools pkgs.wac-cli + pkgs.guile ]; - inputsFrom = [ - rustslop - ]; - inherit (rustslop) CARGO_BUILD_TARGET; }; }; } diff --git a/guile/cps/.gitignore b/guile/cps/.gitignore new file mode 100644 index 0000000..395c5c2 --- /dev/null +++ b/guile/cps/.gitignore @@ -0,0 +1,2 @@ +*.cps +*.go \ No newline at end of file diff --git a/guile/cps/Shakefile.hs b/guile/cps/Shakefile.hs new file mode 100644 index 0000000..23849e6 --- /dev/null +++ b/guile/cps/Shakefile.hs @@ -0,0 +1,21 @@ +import Development.Shake +import Development.Shake.Command +import Development.Shake.FilePath +import Development.Shake.Util + +main = shakeArgs shakeOptions $ do + action $ do + sourceFiles <- getDirectoryFiles "" ["//*.scm"] + need $ (-<.> "cps") <$> sourceFiles + "*.cps" %> \out -> do + withTempFile $ \temp_cps -> do + let scm = out -<.> "scm" + need [scm] + cmd_ + "guild compile -O0 -Ocps -t cps -o" [temp_cps] + [scm] + cmd_ (FileStdout out) + (Stdin ";; -*- mode:scheme -*-\n") "cat -" [temp_cps] + phony "clean" $ do + removeFilesAfter ".shake" ["//*"] + liftIO $ removeFiles "." ["*.cps","*.go"] diff --git a/guile/cps/t.scm b/guile/cps/t.scm new file mode 100644 index 0000000..1c94464 --- /dev/null +++ b/guile/cps/t.scm @@ -0,0 +1,3 @@ +(display "the numberr is ... ") +(display (+ 1 (* 3 4))) +(newline)