summaryrefslogtreecommitdiff
path: root/Biz/Bild.hs
AgeCommit message (Collapse)Author
2021-12-21Remove some old bild commentsBen 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-13Add --repl for Haskell programsBen Sima
2021-12-13Factor out test functionBen Sima
2021-12-07Add simple API key feature to Dragons.devBen Sima
Still need to add this to the CLI, and there should be other features like delete and so on, but this works for now.
2021-12-07Stub out dragons-analyze docker imageBen Sima
2021-11-26FOrmattingBen Sima
2021-11-26Move Biz/Que/Prod.nix to Biz/Que.nixBen Sima
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-26Convert from r6rs to r7rsBen 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-26Get all scheme code compiling with GuileBen Sima
2021-11-26Remove required nix argumentsBen Sima
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.
2021-02-17Fixup some modulesBen Sima
2021-02-05Prefer traverse over mapMBen Sima
2021-02-05Add 'tidy' to PlanBen Sima
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.
2021-01-29Lint 'return' into 'pure', replace bind operatorBen Sima
2021-01-26Create Biz.Log library, extracted from Biz.BildBen Sima
2021-01-26Add user subscription fieldBen Sima
Also improved the test situation, did some refactors, and now listing the user's past analyses on their account page.
2021-01-22Better bild outputBen Sima
- structured log messages - compact logs rewrite the line on bild completion - using conduit for streaming output (although I think this isn't working quite right) - new Proc type for running subprocesses - general code cleanup and refactoring
2021-01-22Add --loud feature to bildBen Sima
2021-01-22Fix gap in bild logBen Sima
I really could use those structured logs.
2021-01-16Check and print bild --test outputBen Sima
2021-01-16Add colors to tooling outputsBen Sima
This makes scanning logs *much* easier. I figure keep it as simple as possible, just red, yellow, and green. I also added two spaces between labels in the log messages. It would be nice to have a more structured logging system, but for now this works.
2021-01-15Add bild --testBen Sima
This argument will run the tests for an output after building. It's active in 'ci' so running that will ensure tests are passing. This way testing a namespace and building a namespace are as close together as possible, so presumably it will be that much easier to write good tests.
2021-01-15Implement Biz.Test with tastyBen Sima
Also changes the --test option to a 'test' command. This is because running the tests for a namespace/exe should never be combined with anything else: you either want to run the tests, or not.
2021-01-15Implement Biz.CliBen Sima
Wraps docopt rather nicely. It's much nicer than optparse-applicative and runs tests with the --test argument automatically. Next I just need to implement a test framework.
2020-12-30bild: build everytingBen Sima
Now bild knows how to determine between modules that require ghcjs and ghc. It also knows what *not* to build, meaning it won't try to build non-buildable nix targets, for example (unfortunately this is just hardcoded for now), but it also won't build scm or py targets that I haven't implemented yet. It just silently fails, which is fine, because it means I can do `bild **/*` and everything just works. Of course, if I want to build scm code then I will have to implement that, but that's not a priority right now.
2020-12-30bild: try to fix the remote bild message againBen Sima
2020-12-28bild: report builder betterBen Sima
2020-12-09Add Biz.Namespace libraryBen Sima
2020-12-06Don't try to do remote builds when on lithiumBen Sima
2020-12-06Doc formattingBen Sima
2020-12-05Bild multiple targets, and use docoptBen Sima
2020-12-05Renamespace Devalloc and QueBen Sima
Move them under the Biz root so that we know they are specific to Biz stuff. Biz is for proprietary stuff that we own. I also had to refactor the bild namespace parsing code because it couldn't handle a namespace with 3 parts. I really need to get that namespace library written and tested.
2020-11-30Use weekly branch names in pie, and small refactorsBen Sima
2020-11-30Stub guile build and fix namespace in nix buildBen Sima
2020-11-28Enable rudimentary remote buildsBen Sima
2020-11-18Extend bild to nix targets properlyBen Sima
Also had to capitalize some stuff, and move some nix files around and rename the metadata directive from 'exe' to 'out' because that just makes more sense, and fix some compiler errors. But now bild treats both nix and hs files as buildable things. So that's cool. One interesting example is Biz/Pie.{nix,hs} - I can either create a dev build of the hs file with ghc, or I can create a fully-encapsulated nix build. Its nice to have both options because a dev build with ghc takes half the amount of time, and I can rely on my locally cached hi and ho files. I think this shows the power of bild, but also can be a somewhat subtle thing. The issue really is with the separate command calls in nix builds vs dev builds. I figure there are a few ways to fix this: 1. Try to use bild inside the nix rules. That could be interesting, but could also lead to some weird behavior or worm holes forming. 2. Extract the command line invocation into a separate file, some kind of really simple template that gets pulled into both programs. It is important to consider that in the future I might want to have bild do a module-by-module nix build of programs, but I'm not sure how that would effect my choice here.
2020-11-17Refactor bild logic a bitBen Sima
This should make it easier to add nix builds, which is the next task. I need to move some files and nix code around so that I have e.g. Que/Prod.nix as the actual full 'build.os' expression.
2020-10-12merge Biz/Bild.scm into Biz/Bild.hsBen Sima
2020-07-26dev: move _{bild,keep,skey} to _/{bild,keep,skey}Ben Sima
2020-07-25bild: support incremental compilationBen Sima
Closes https://github.com/bsima/biz/issues/9
2020-07-25bild: port to haskellBen Sima