-
Notifications
You must be signed in to change notification settings - Fork 206
Rethink/rework the HIE BIOS #1053
Comments
How do the |
@Avi-D-coder The This also includes managed a partly-edited but unsaved file. |
What would be your preferred solution @alanz ? |
@lorenzo I would rather keep an open mind at this stage, tbh. |
What exactly would the first option (getting cabal-helper/ghc-mod onto Hackage) involve? Would it be the case that we would have the HIE forks as a separate package on Hackage a-la cabal-helper-hie ghc-mod-hie? |
I am very interested in this issue as I have been unable to get ghc-mod working on my OSX laptop (or a windows laptop previously) and I have tried many times over the last 3 years, including using nix. Have you looked at https://github.com/google/haskell-indexer I doubt is has everything that is needed but it should provide a strong foundation for all the features that require static analysis. Additionally it doesn't load the whole index into memory and it is designed to be able to work with very large projects, something I feel ghc-mod or any tool that creates an in-memory index would struggle with. And finally, I would really like to get this to work with https://github.com/tweag/rules_haskell so it would be great if HIE didn't require cabal, rather cabal and stack features should be optional, as would features for Bazel or Shake or any other build system. |
That is an interesting split point, and probably makes sense, given that in hie we basically want to know the shape of a project, and then load files as needed into GHC, regardless of how the specific config came about. And I understand this is one of the great strengths of |
I think making use of ghci together with this https://ghc.haskell.org/trac/ghc/ticket/15461 would improve/simplify things a lot! Also this would probably open the possibility for an obelisk project for example to re-use the ghci session |
@alanz would it be feasible to propose https://ghc.haskell.org/trac/ghc/ticket/15461 as a summer of code project? Sounds like it could be really handy for us |
I have a plan which will allow implementing HIE support for bazel, obelisk etc. @shmish111 @eskimor Can you provide me some simple sample projects which I can use to test my implementation? (Nix compatible instructions preferable) |
@mpickering could you elaborate on your plan a bit? You see, I also have a plan which means we might be duplicating effort :) |
@mpickering awesome! :-) That's fortunately very easy as obelisk comes with an example project. Just install obelisk as described here, then create some empty directory and run |
Done in #1126 |
haskell-ide-engine
has the concept of a BIOS. which is the layer that interfaces with the underlying operating system, package manager, etc.To date, we have been using modified versions of
cabal-helper
andghc-mod
, in forked repos from the main upstream.It has now been several years, and we still cannot put
hie
onto hackage, because we do not have a clean dependency list.So, time to reconsider our options.
Apply resources to getting
cabal-helper
,ghc-mod-core
andghc-mod
as used by hie onto hackage.Adapt https://github.com/kazu-yamamoto/hhp, which has
cabal new-build
support.Something else, perhaps based on what
ghcid
is doing.Prerequisites are that it supports
stack
,cabal old build
,cabal new-build
, andnix
.But, realistically, we can assume GHC >= 8.2.2, and for the cabal builds,
cabal-install
>= 2.4.1.0The text was updated successfully, but these errors were encountered: