
#15269: Qualified Names in --show-iface output -------------------------------------+------------------------------------- Reporter: sjakobi | Owner: (none) Type: feature request | Status: new Priority: normal | Milestone: 8.8.1 Component: Compiler | Version: 8.4.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Old description:
== Motivation
In the Hi Haddock project we use tests based on the `--show-iface` mode.
In the `.hi`-files we dump, we list the `Name`s that may correspond to an identifier found in a docstring. In the case of ambiguous identifiers, it would be nice to see the module names of the corresponding `Name`s, so we can tell them apart.
== Possible solutions
* In Phab:D4806, I proposed to hardcode qualification for `--show-iface`. But this may create unwanted noise in different usecases.
* If I could use `-dppr-debug` with `--show-iface` I would do that. Currently I get the following error if try:
{{{ Warning: the following files would be used as linker inputs, but linking is not being done: NoExportList.hi -dppr-debug: openBinaryFile: does not exist (No such file or directory) }}}
New description: == Motivation In the Hi Haddock project we use tests based on the `--show-iface` mode. In the `.hi`-files we dump, we list the `Name`s that may correspond to an identifier found in a docstring. In the case of ambiguous identifiers, it would be nice to see the module names of the corresponding `Name`s, so we can tell them apart. For example, for a module containing a docstring `"'elem'"` and a declaration for `elem`, we would currently see: {{{ "elem": elem elem }}} One `elem` refers to the local one, the other to the one in the `Prelude`. What I'd like to see instead is {{{ "elem": Data.Foldable.elem MyModule.elem }}} If the output would also contain package names and/or ids, I wouldn't mind. == Possible solutions * In Phab:D4806, I proposed to hardcode qualification for `--show-iface`. But this may create unwanted noise in different usecases. * If I could use `-dppr-debug` with `--show-iface` I would do that. Currently I get the following error if try: {{{ Warning: the following files would be used as linker inputs, but linking is not being done: NoExportList.hi -dppr-debug: openBinaryFile: does not exist (No such file or directory) }}} -- Comment (by sjakobi):
It would help me to understand what you are proposing if you could give an example of what you currently get with --show-iface and what you'd like to get instead.
Also, is it really best to work from a textual dump? You could instead use the GHC API to load the .hi file into memory, and interrogate it
I have updated the description. directly, perhaps? I'm not sure how to integrate tests like that into the GHC testsuite. Also, apart from this issue, `--show-iface` works pretty well for me. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15269#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler