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.
|
|
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.
|
|
|
|
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.
|
|
|
|
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.
|
|
I don't like TODOs in my codebase, I'd rather keep them in org files. Eventually
I need a linter that prevents all TODOs from getting into code.
|
|
|
|
|
|
The cloud was old, so some extra fixes snuck in that should have been a part of
the nixpkgs upgrade.
|
|
|
|
|
|
|
|
|
|
I don't care about ghcjs anymore, the most javascript I want to do is jQuery.
|
|
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.
|
|
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.
|
|
|
|
"help" is a bash builtin, "tips" isn't the best but its just what I thought of
first.
|
|
|
|
|
|
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".
|
|
|
|
|
|
|
|
Instead of symlinking, just set the local git config.
|
|
|
|
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.
|
|
This means my call to ghc-pkg will look at the full package set from Hoogle.
|
|
|
|
|
|
|
|
Rebuilt email server, started wireguard setup.
|
|
This also makes some changes to the build tooling to clean up the environment a
bit, and get us closer to 'bild -s'.
|
|
|
|
|
|
This makes it explicit that we are using GitHub vs some other OAuth args. The
idea is that we should be making a new type for every service, this allows us to
have type safety in the implementation but a common set or pattern of names for
the environment variables and record fields.
Also using 'notset' instead of 'mempty' is really helpful for debugging when
this breaks, as I found out.
|
|
|
|
Still todo: add authentication. But that can wait.
In re-implementing this, I was able to figure out how to get the Go.mult working
properly as well. The problem is that a tap from a mult channel does not remove
the message from the original channel. I'm not sure if that should be a core
feature or not; for now I'm just draining the channel when it's received in the
Que HTTP handler. (Also, this would be a good place to put persistence: have a
background job read from the original channel, and write the msg to disk via
acid-state; this would obviate the need for a flush to nowhere.)
Also, streaming is working now. The problem was that Scotty closes the
connection after it sees a newline in the body, or something, so streaming over
Scotty doesn't actually work. It's fine, Servant is better anyway.
|
|
|
|
|
|
|
|
|