| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
See https://github.com/haskell/cabal/issues/6201 for details about the bug
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Seems to have been missed when it was added.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
One caveat: psiConfigure used to --only-configure the entire project. In
theory we shouldn't even need to do that anymore because we reconfigure
just the unit/target we need to before reading unit info.
However cabal has a bug or well they might consider it just inconsistent
behaviour in that instantiated backpack units' targets are not built by the
target mentioned in plan.json so this per-unit reconfigure is currently
broken there.
The workaround is to just build the entire project before running a query
for now.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
After lamenting the fact that we don't have this in the docs I figured it
really ought to be an exposed abstraction.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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!
|
|
|
|
|
| |
We cannot always assume `takeDirectory cfg_file` will be the project source
directory!
|
|
|
|
| |
This allows discriminating Stack vs. Cabal at the type level more easily.
|
|
|
|
|
| |
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?).
|
|
|
|
|
| |
We need to support passing down the path to ghc to new-build/stack in order
to support using a non-default 'ghc' executable.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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 ;)
|
| |
|
|
|
|
|
| |
The strings under the "Going to Run These Tests" heading can be plugged
right back into the commandline to run just that test.
|
| |
|
|
|
|
|
|
|
| |
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}$.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This allows them to be checked for up-to-date'nes in CI like the
stack-resolvers.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Turns out the Setup header has the compiler version used to build Setup, not the
version the project is configured to use.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Super-major version bumps like Cabal-2.5.0.0 -> Cabal-3.0.0.0 violate that rule.
|
|
|
|
| |
It breaks when there's a `cabal-version:` delaration in the file.
|