Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
Only fully implemented for Haskell at the moment but that is okay.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Without this, Guile libraries like SDL2 will use Guile 2.0 instead.
|
|
|
|
|
|
|
|
|
|
|
|
I need to guard on the existence of `out`. This should properly be a `Maybe
FilePath`, but to make that change requires a lot of refactoring that I don't
want to do right now. Instead, I added it to my todo list for later.
|
|
At least one namespace (Biz/Dragons/Analysis.nix) needs this.
|
|
I need to use the absPath, and the `makeAbsolute` function doesn't actually
verify that the path is correct, it just prepends the CWD to the given path.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Redis was failing a test on the previous version.
|
|
Mostly thid required packaging up some deps, but also had to recompile
stuff with cuda support.
|
|
|
|
This way I am more likely to hit the cache and not have to build
everything all the time.
|
|
|
|
|
|
|
|
|
|
Guile linking was first implemented in d8fe6f7ac54f155fe5a3c33509249a70d0c816c5.
This test remained uncommitted since then because I wanted a better way to test
it, but I couldn't figure out another way to test it, so here we are.
|
|
There's probably a better way to do this but this should work for now I guess.
|
|
|
|
Its broken, the service fails to start every time, its annoying.
|
|
|
|
|
|
|
|
|
|
The code was becoming repetitive and messy, with functions like 'metaDep' and so
on. So that's an indication that they just need to have their own home.
|
|
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.
|
|
|