Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use plStackProjectDir instead of 'takeDirectory stack_yaml' | Daniel Gröber | 2019-09-17 | 1 | -4/+4 |
| | |||||
* | Fix some warnings | Daniel Gröber | 2019-09-17 | 1 | -1/+0 |
| | |||||
* | Update some code docs | Daniel Gröber | 2019-09-17 | 2 | -13/+24 |
| | |||||
* | Remove pretty-show dependency | Daniel Gröber | 2019-09-17 | 1 | -2/+1 |
| | | | | It's a bit heavy just for a single use-site for debugging. | ||||
* | Fix "Installing lib:Cabal" message | Daniel Gröber | 2019-09-17 | 1 | -1/+1 |
| | |||||
* | Implement cabal v2 backpack unit workaround | Daniel Gröber | 2019-09-17 | 2 | -7/+35 |
| | | | | See https://github.com/haskell/cabal/issues/6201 for details about the bug | ||||
* | Make caching more fine grained | Daniel Gröber | 2019-09-17 | 1 | -9/+63 |
| | | | | | | | | | | | | | | | | | Previously we only had a cache for the project info and each unit info. However adding support for passing overridden compiler paths to build tools introduces a nasty data dependency: to fully configure 'Program's we (used to) need ProjInfo which needs an already configured 'Programs' in readProjInfo (ugh). After at least four failed attempts at untangling this I arrived at this solution. Simply splitting up the caches into some smaller parts does the trick and as a side product forced me to add an abstraction for the caching logic so as to not reapeat myself even more. Relatedly runQuery is not just a field accessor anymore but actualy does some IO of itself to manage the cache and make already configured 'Program's available to the rest of the library. | ||||
* | Add verbose logging support for readProcess calls | Daniel Gröber | 2019-09-17 | 1 | -11/+24 |
| | |||||
* | Fix some import warnings | Daniel Gröber | 2019-09-17 | 2 | -2/+0 |
| | |||||
* | Break cycle between 'Package' and 'Unit' | Daniel Gröber | 2019-09-17 | 3 | -5/+9 |
| | |||||
* | Add exported interface for running build-tools | Daniel Gröber | 2019-09-17 | 4 | -12/+71 |
| | |||||
* | Refine ProjLoc docs | Daniel Gröber | 2019-09-17 | 1 | -18/+21 |
| | |||||
* | Introduce Package abstracton | Daniel Gröber | 2019-09-17 | 3 | -61/+90 |
| | | | | | After lamenting the fact that we don't have this in the docs I figured it really ought to be an exposed abstraction. | ||||
* | Make ChSetupEntrypoint carry the Main module file name | Daniel Gröber | 2019-09-17 | 1 | -0/+2 |
| | |||||
* | Remove crusty old helper code | Daniel Gröber | 2019-09-17 | 4 | -343/+42 |
| | | | | | | | | | | | | - Inplace component inlining really always was a nasty cludge, now that we have proper build-system support we can get rid of it. - GHC options subsets aren't really needed, we can split these up after parsing the options using the ghc library. - Dropped GHC 7.10, it seems unsupportable without the inplace component inlining, possibly a Stack/lib:Cabal bug, but it is quite old so time for it to go anyway. This is the second thing commit it was holing up too! | ||||
* | Fix ProjLoc to source directory correspondence | Daniel Gröber | 2019-09-17 | 1 | -1/+11 |
| | | | | | We cannot always assume `takeDirectory cfg_file` will be the project source directory! | ||||
* | Refactor ProjType to be more inductive | Daniel Gröber | 2019-09-17 | 2 | -22/+30 |
| | | | | This allows discriminating Stack vs. Cabal at the type level more easily. | ||||
* | Allow passing override-env to process functions | Daniel Gröber | 2019-09-17 | 6 | -27/+43 |
| | | | | | Unfortunately we need this to pass a custom GHC executable path to stack, since it doesn't have an option to override it on the commandline (yet?). | ||||
* | Merge CompPrograms back into Programs | Daniel Gröber | 2019-09-17 | 4 | -34/+23 |
| | | | | | We need to support passing down the path to ghc to new-build/stack in order to support using a non-default 'ghc' executable. | ||||
* | Add TODO about user-ghc-environment support | Daniel Gröber | 2019-09-17 | 1 | -0/+5 |
| | |||||
* | Flesh out project discovery API | Daniel Gröber | 2019-09-17 | 3 | -31/+14 |
| | |||||
* | Fix some warnings | Daniel Gröber | 2019-09-17 | 4 | -8/+8 |
| | | | | | | | | | I'm turning off -Wunused-imports in the modules that have to deal with ancient Cabal versions because maintaining warning cleanlyness really is quite pointless when you have to deal with all sorts of deprecations and stuff moving around. I don't think having too many imports will ever break anything there unless the modules really get deprecated and removed, but we'll notice that ;) | ||||
* | Update API docs of main types | Daniel Gröber | 2019-09-17 | 1 | -27/+93 |
| | |||||
* | Split SProjType along build-tool line | Daniel Gröber | 2019-09-17 | 1 | -22/+37 |
| | | | | | | | This makes it much easier to deal with differences between the build tools as we can now have functions that only make sense for Cabal and statically enforce this by passing a 'SCabalProjType pt' as evidence that $pt \in {V1, V2}$. | ||||
* | Support cabal-file not being in pkgdir with cabal-v1 | Daniel Gröber | 2019-09-17 | 1 | -3/+3 |
| | |||||
* | Fix RelativePath invariants | Daniel Gröber | 2019-09-17 | 1 | -6/+22 |
| | | | | | | | | | | Two things were broken here: - I forgot to encode the invariant that RealtivePath should not be allowed to escape CWD by using '../' - The invaiant was inverted. A RelativePath was only allowed to be absolute before -- uups. | ||||
* | Start implementing Distribution.Helper.Discover | Zubin Duggal | 2019-09-17 | 1 | -0/+26 |
| | |||||
* | Fix Cabal HEAD | Zubin Duggal | 2019-07-29 | 1 | -4/+1 |
| | |||||
* | Fix redundant case warning | Daniel Gröber | 2019-06-19 | 1 | -1/+0 |
| | |||||
* | Revert compilerVersion being project-scope | Daniel Gröber | 2019-05-27 | 1 | -2/+4 |
| | | | | | Turns out the Setup header has the compiler version used to build Setup, not the version the project is configured to use. | ||||
* | Fix QueryEnv not being compatible with Ex | Daniel Gröber | 2019-05-05 | 1 | -2/+1 |
| | |||||
* | Fix Haddock parse error | Daniel Gröber | 2019-05-02 | 1 | -2/+2 |
| | |||||
* | Add ProjLocV1Dir for easier forward porting | Daniel Gröber | 2019-04-01 | 1 | -2/+8 |
| | |||||
* | Make compilerVersion accessor project-scope for V1 projects | Daniel Gröber | 2019-04-01 | 4 | -24/+62 |
| | |||||
* | Fix datecode padding in unpackCabalHEAD | Daniel Gröber | 2019-04-01 | 1 | -1/+2 |
| | |||||
* | Don't insist on an odd major version in unpackCabalHEAD | Daniel Gröber | 2019-04-01 | 1 | -3/+4 |
| | | | | Super-major version bumps like Cabal-2.5.0.0 -> Cabal-3.0.0.0 violate that rule. | ||||
* | Fix replaceVersionDecl for Cabal HEAD | Daniel Gröber | 2019-03-31 | 1 | -1/+3 |
| | | | | It breaks when there's a `cabal-version:` delaration in the file. | ||||
* | Promote 'Ex' to exported API | Daniel Gröber | 2019-03-31 | 1 | -1/+29 |
| | | | | We will need it for the project discovery module later. | ||||
* | Bestow installCabalLibV2 with the message blub | Daniel Gröber | 2019-03-29 | 1 | -13/+19 |
| | |||||
* | docs | Daniel Gröber | 2019-03-29 | 2 | -9/+20 |
| | |||||
* | Add accessor for ChModuleName newtype | Daniel Gröber | 2019-03-29 | 1 | -1/+1 |
| | |||||
* | Fix indent | Daniel Gröber | 2019-02-14 | 1 | -1/+1 |
| | | | | [ci skip] | ||||
* | Sync with Cabal HEAD | Daniel Gröber | 2019-02-14 | 1 | -2/+1 |
| | |||||
* | Fix empty package-db being interpreted as "existing" | Daniel Gröber | 2019-02-14 | 1 | -0/+1 |
| | |||||
* | Make Cabal-HEAD lib v2-build cachable | Daniel Gröber | 2019-02-14 | 4 | -37/+92 |
| | |||||
* | Some helper compilation test coverage comments | Daniel Gröber | 2019-02-11 | 1 | -0/+2 |
| | | | | [ci skip] | ||||
* | Add demoteSProjType | Daniel Gröber | 2019-02-11 | 1 | -0/+5 |
| | |||||
* | docs | Daniel Gröber | 2019-02-11 | 1 | -0/+1 |
| | | | | [ci skip] | ||||
* | helper: Make 'version' comand part of the normal parsing logic | Daniel Gröber | 2019-02-10 | 1 | -7/+3 |
| | |||||
* | Shortcut helper compilation when Cabal version is already available | Daniel Gröber | 2019-02-09 | 4 | -795/+820 |
| | | | | | This is mostly an optimization for Nix which already sets up the environment correctly, so we should reward its users :) |