<div dir="ltr"><div>Hey Sam,</div><div><br></div><div>I think the thing you propose hardly qualifies as a new feature (in the sense of page you referenced), so not much of a hassle should be involved.</div><div>As long as it is a 3-lines change, I'd say go ahead and create an Issue and an MR on Gitlab: you might be better off with getting feedback there.</div><div><br></div><div>--Best, Artem<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 6 Aug 2019 at 15:52, Sam Halliday <<a href="mailto:sam.halliday@gmail.com">sam.halliday@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello,<br>
<br>
I would like to submit a patch to ghc 8.8 adding a function that exposes a field that is useful for tooling authors and can already be reached, albeit in a very awkward way.<br>
<br>
The process documented at<br>
<a href="https://gitlab.haskell.org/ghc/ghc/wikis/working-conventions/adding-features" rel="noreferrer" target="_blank">https://gitlab.haskell.org/ghc/ghc/wikis/working-conventions/adding-features</a><br>
seems very heavyweight for the patch that I was planning to propose,<br>
which is just adding the following to GHC.hs (and exporting it):<br>
<br>
  modInfoRdrEnv :: ModuleInfo -> Maybe GlobalRdrEnv<br>
  modInfoRdrEnv = minf_rdr_env<br>
<br>
Without this accessor, we must reparse and typecheck the file to get the GlobalRdrElts, which is very inefficient and uses fields named "internal" so I'm guessing that's not a good thing to build a tool on top of.<br>
<br>
My colleague already wrote a tool using a workaround, see <a href="https://gitlab.com/tseenshe/hsinspect/blob/503cd48faba5b308be29ed44a12f7d6b22105f2b/exe/Main.hs#L53-61" rel="noreferrer" target="_blank">https://gitlab.com/tseenshe/hsinspect/blob/503cd48faba5b308be29ed44a12f7d6b22105f2b/exe/Main.hs#L53-61</a><br>
<br>
How should I go about submitting this? Do I need to write a test or is this trivial enough not to bother?<br>
<br>
Sam Halliday <<a href="mailto:sam.halliday@gmail.com" target="_blank">sam.halliday@gmail.com</a>> writes:<br>
<br>
> Hi all,<br>
><br>
> Is there a reason why minf_rdr_env (a field in ModuleInfo) is not<br>
> exposed?<br>
><br>
> It's possible to reconstruct it in 8.4.4 (the only version I'm looking<br>
> at) with a TypecheckedModule via<br>
><br>
>   let (tc_gbl_env, _) = GHC.tm_internals_ tmod<br>
>       minf_rdr_env = tcg_rdr_env tc_gbl_env<br>
><br>
><br>
> It's a useful thing to have for editor tooling (e.g. to get the correct<br>
> qualified imported symbols that may be autocompleted).<br>
><br>
> -- <br>
> Best regards,<br>
> Sam<br>
<br>
-- <br>
Best regards,<br>
Sam<br>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div>