summaryrefslogtreecommitdiff
path: root/Biz/Bild.nix
AgeCommit message (Collapse)Author
2023-07-31Implement nix builds for HaskellBen Sima
This is prototype quality. For some reason I think it breaks when doing `build **/*.hs`, which isn't good. But also it's working, and the code feels good. Next I'd like to get Python builds working, as hopefully that will force me to improve the existing code to support a second language.
2023-07-31Prototype nix expression generationBen Sima
There are some limitations to this implementation: 1. Using `runCommand` means this will re-run any time anything changes in the repo. The solution is to use the existing import detection to make a list of source files, and put that into a `stdenv.mkDerivation`, which I'll do next. 2. The `NeatInterpolation` usage is ugly. The templated nix code should be extracted into its own file, such as `Biz/Bild/Builder.nix`. 3. I'm not actually calling it yet. The ideal thing would be to call `nix-instantiate`, get the output drv path, and then call `nix-store --realise` on that. To do that I need to refactor my `proc` function to return stdout to the calling function, and I should probably just make helper functions like `nixInstatiate :: Target -> IO DrvPath` and `nixStoreRealise :: DrvPath -> NixStorePath`, or something like that.
2023-07-28Add NIX_CFLAGS_COMPILE and some depsBen Sima
2023-05-03Add C indent linterBen Sima
2023-04-28Default to Guile 3.0 everywhereBen Sima
Without this, Guile libraries like SDL2 will use Guile 2.0 instead.
2023-01-06Expose some packages in the nix libraryBen Sima
At least one namespace (Biz/Dragons/Analysis.nix) needs this.
2023-01-01Add black and pylintBen Sima
2022-12-28Get ava GPT chatbot prototype workingBen Sima
Mostly thid required packaging up some deps, but also had to recompile stuff with cuda support.
2022-12-16Stub ava chatbotBen Sima
2022-12-01Build gnutls with guile bindingsBen Sima
2022-10-26Support building with SDLBen Sima
As a byproduct this also (sorta) generalizes how I pass flags to the C compiler using pkg-config, instead of using the guile-config. Now the 'lib' metadata will be added with 'pkg-config --libs', and the 'sys' metadata will be added with 'pkg-config --cflags'. I'm not *really* sure what the difference is, but if it works it works.
2022-08-03Print bild JSON analysis as a dictionary instead of a streamBen Sima
2022-08-02Make bild dev build work againBen Sima
Unfortunately, until bild can instantiate nix builds, it needs all of its compilers in the dev environment, and I need to pass this environment into the dev nix-shell in order for it to work in the repl or after being built to _/bin.
2022-08-01Add missing runtime dependencies to bildBen Sima
2022-07-29Implement Guile linking for C buildsBen Sima
In order to write Guile code against C, I need to distiguish between libs and bins, so I did that, then I got the flags that gcc needs from `guile-config` and put them in the args for any C lib build. I tested this with Bessel.c and Bessel.scm (not in this patch, because I don't really want that code in my tree, I'll come up with another way to test it later).
2022-07-27Upgrade nixpkgsBen Sima
2022-07-25Run deadnix as a linterBen Sima
2022-07-25Add basic support for building C codeBen Sima
2022-07-25Add tags support for more languagesBen Sima
Rust seems to not be supported in my ctags version :( Also rename some Ide scripts because these are commands, not really scripts.
2022-07-25Remove some unused dev dependenciesBen Sima
2022-07-25Remove GHCJS support completelyBen Sima
I don't care about ghcjs anymore, the most javascript I want to do is jQuery.
2022-07-21Remove rustc and scheme from global environmentBen Sima
2022-07-20Re-enable scheme buildsBen Sima
I had thought that I needed some unmerged commits to nixpkgs that enable Guile 3.0, but turns out I just needed to use a different target name :P
2022-07-19Provision lisp repls with nixBen Sima
asdf seems to always be necessary for any other packages to work, so I just include that in the call to nix-shell, and swank is included because it's just useful to start a repl server.
2022-07-19Upgrade nixpkgs, ghc923Ben Sima
I ended up deleting miso, and consequently all files under Hero/ and Miso/, because I couldn't get miso to build with GHC 9.2. Other things: - Niv has been wrapped by Biz/Bild/Deps.hs, so I can extend it to my liking. - Apply-refact is gone because I couldn't get it to build. - Disabled python stuff.
2022-07-18Move let bindings to 'private'Ben Sima
This way I can still inspect and use them from the nix repl by just doing `:l Biz/Bild.nix`, but its also clear that they aren't part of the normal build rules.
2022-07-18Delete ShellHook.sh in favor of just using direnvBen Sima
2022-07-17Add support for SBCL replBen Sima
2022-07-17Add basic Rust supportBen Sima
Support for packages and third-party imports will need to come later once I figure out how to lookup rust packages by their import statements. Until then, this works to compile "hello world".
2022-05-24Add git and remove custom shell promptBen Sima
2021-12-21Extract repl program from bildBen Sima
This is basically building on top of bild's analysis, which is great becuase it means that bild is becoming a useful tool rather than a monolithic do-everything job runner. The eventual goal is for the bild analysis to be much more useful, maybe even provide data to remote repls or language-server or whatever.
2021-12-21Fix bild --repl to use the proper hasakell package setBen Sima
2021-12-14Add custom package db to ghcPkgFindModuleBen Sima
This means my call to ghc-pkg will look at the full package set from Hoogle.
2021-12-13Bug: giv correct paths to runBuildAnalyzeBen Sima
2021-12-13Add --repl for Haskell programsBen Sima
2021-12-01Run k3s, and provide bild.imageBen Sima
2021-11-26Update to ghc 8.10.4Ben Sima
This also makes some changes to the build tooling to clean up the environment a bit, and get us closer to 'bild -s'.
2021-11-26Automatically detect Haskell dependenciesBen Sima
This parses the files contents for imports, then uses ghc-pkg to lookup the package that provides the module. Now I can do that analysis in Haskell instead of nix, which is much easier to code with.
2021-11-26Comment out broken libfive/inspekt3dBen Sima
2021-11-26Upgrade nixpkgs, add guile 3.0Ben Sima
2021-11-26Upgrade to nixos-21.05Ben Sima
Getting me closer to the latest GHC. This release also includes my own packages that I submitted some time ago. GHCJS is not present in 21.05 for some reason, but I think it's back in master, so I might do another upgrade soon, but for now I just disabled my GHCJS support. I'm not really using it anyway. I also had to bring it string-quote, update nixos-mailserver, and a few other things.
2021-11-26Move Biz/Bild/Rules.nix -> Biz/Bild.nixBen Sima