Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
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.
|
|
Asdf is required in order to load any third-party packages.
|
|
Reduced duplication of out and sysdeps detection. Some other readibility cleanups.
|
|
|
|
|
|
|
|
|
|
Bild.nix relies on output name when setting the output path, which is gonna be
different than the dev build cabdir output path.
|
|
|
|
Namespace is unique, whereas FilePath could be relative or absolute, or have a
leading . or trailing / or not.
|
|
|
|
This moves logic into the analysis step, and allows better auditing because you
can see exactly what flags and command bild will use to compile the target.
|
|
|
|
|
|
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).
|
|
|
|
Before:
ϟ time bild Biz/Dragons.hs
good: bild: Biz/Dragons.hs
real 0m31.587s
user 0m25.073s
sys 0m6.446s
After:
ϟ time bild Biz/Dragons.hs
good: bild: Biz/Dragons.hs
real 0m17.111s
user 0m39.719s
sys 0m9.145s
So yeah this is a good speedup.
|
|
|
|
|
|
I don't care about ghcjs anymore, the most javascript I want to do is jQuery.
|
|
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
|
|
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.
|
|
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".
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
Still need to add this to the CLI, and there should be other features like
delete and so on, but this works for now.
|
|
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
This allows us to use nix-build as a check that bild is working.
I think bild sometimes hangs because it doesn't get input from nix-build? I'm
not sure, but one workaround is to run nix-build on the target, and then bild
will just get the cached build.
|
|
|
|
|
|
This is supposed to be how to cleanup the database and any other local files.
Should only be used before/after test, so maybe I can find a way to enforce this
constraint somehow in the code.
|
|
|