See 
https://hackage.haskell.org/package/ghc-9.2.1/docs/GHC-Driver-Env.html#v:lookupType

On 22/01/14 01:23, Alejandro Serrano Mena wrote:
Nice, so only I get the corresponding IdInfo, my work is “done”. But I’m
still missing how to thread everything together. Right now, what I have to
work with are:

  - The HieAst node I am searching information about, from which I can get
  the name,
  - The result of the parsing, renaming, and type checking phases.

Is there a way, with that information only, to obtain the corresponding
IdInfo? (This might be a very simple question, or just have a negative
answer, but I’m not versed at all in how all this information flows within
GHC).

Thanks in advance,
Alejandro

El 13 ene 2022 16:50:01, Sebastian Graf <sgraf1...@gmail.com> escribió:

Yes, every imported identifier from a module that was compiled with
optimisations should have the proper analysis information in its IdInfo.
So if you have `base` somewhere in one of your compiled libraries and load
it, then the identifier of `GHC.OldList.map` will have an `idDmdSig` that
says it's strict in the list parameter.

At least that's how it works in GHC, where these IdInfos are populated
with the information from the loaded interface files. The situation with
HLS might be different, although I wouldn't expect that.

------ Originalnachricht ------
Von: "Alejandro Serrano Mena" <trup...@gmail.com>
An: "Sebastian Graf" <sgraf1...@gmail.com>
Cc: "GHC developers" <ghc-devs@haskell.org>; "Matthew Pickering" <
matthewtpicker...@gmail.com>
Gesendet: 13.01.2022 16:43:50
Betreff: Re: Re[2]: Strictness/demand info for a Name

Thanks for the pointers! :)

Knowing this, let me maybe rephrase my question: is it possible to get
demand information of identifiers *without* running the analysis itself?

Alejandro

El 13 ene 2022 15:45:29, Sebastian Graf <sgraf1...@gmail.com> escribió:

Yes, Matt is right.

`dmdSigInfo` describes the how a function Id uses its arguments and free
variables, whereas
`demandInfo` describes how a (local, mostly) Id is used.

Note that if you wanted to go beyond type-checking, you could probably
run the analysis on the desugaring of the current module quite easily.
But the results would be misleading, as prior optimisations (that you
probably don't want to run) may arrange the program in a way that demand
analysis has an easier time.

------ Originalnachricht ------
Von: "Matthew Pickering" <matthewtpicker...@gmail.com>
An: "Alejandro Serrano Mena" <trup...@gmail.com>
Cc: "GHC developers" <ghc-devs@haskell.org>
Gesendet: 13.01.2022 15:38:29
Betreff: Re: Strictness/demand info for a Name

You look at `dmdSigInfo` in `IdInfo`.


Matt


On Thu, Jan 13, 2022 at 2:20 PM Alejandro Serrano Mena

<trup...@gmail.com> wrote:

>

>  Dear all,

>

>  I’m trying to bring the information about demand and strictness to the
Haskell Language Server, but I cannot find a way to do so. I was wondering
whether you could help me :)

>

>  Here’s my understanding; please correct me if I’m wrong:

>

>  The analysis runs on Core, so getting this information for the current
file would require to run the compiler further than type checking, which is
quite expensive,

>  However, this analysis should somehow use known information about
imported functions, which should be readily available somewhere,

>  If the above is true, what is the simplest way to get the information
for imported things? As I mentioned above, I would prefer not to run the
compiler further than the type checking phase, since otherwise it gets too
expensive for IDE usage. Right now HLS uses the information from the .hie
files.

>

>

>  In fact, this goes into the more general question of how to show
information from different analyses within the IDE; I guess solving the
case for strictness/analysis may open the door to more (maybe everything
recorded inside a `Id`?)

>

>  Regards,

>  Alejandro

>  _______________________________________________

>  ghc-devs mailing list

>ghc-devs@haskell.org

>http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

_______________________________________________

ghc-devs mailing list

ghc-devs@haskell.org

http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs




_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to