aboutsummaryrefslogtreecommitdiff
path: root/src/Haddock/InterfaceFile.hs
Commit message (Collapse)AuthorAgeFilesLines
* Port Haddock.Interface to new GHC API.Thomas Schilling2008-09-151-42/+60
| | | | | | | | | | | | | | | | This required one bigger change: 'readInterfaceFile' used to take an optional 'Session' argument. This was used to optionally update the name cache of an existing GHC session. This does not work with the new GHC API, because an active session requires the function to return a 'GhcMonad' action, but this is not possible if no session is provided. The solution is to use an argument of functions for reading and updating the name cache and to make the function work for any monad that embeds IO, so it's result type can adapt to the calling context. While refactoring, I tried to make the code a little more self-documenting, mostly turning comments into function names.
* Fix some warningsIan Lynagh2008-08-271-51/+55
|
* Follow changes to Binary in GHC 6.9David Waern2008-08-131-1/+78
|
* Make our .haddock file version number depend on the GHC versionDavid Waern2008-08-121-1/+17
| | | | | | We need to do this, since our .haddock format can potentially change whenever GHC's version changes (even when only the patchlevel changes).
* Remove claim of backwards compatibility from docs for readInterfaceFileDavid Waern2008-05-011-2/+0
|
* Fix some trivial warnings in H.InterfaceFileDavid Waern2008-02-101-4/+7
|
* Change the representation of DocNamesDavid Waern2008-02-091-21/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ross Paterson reported a bug where links would point to the defining module instead of the "best" module for an identifier (e.g Int pointing to GHC.Base instead of Data.Int). This patch fixes this problem by refactoring the way renamed names are represented. Instead of representing them by: > data DocName = Link Name | NoLink Name they are now represented as such: > data DocName = Documented Name Module | Undocumented Name and the the link-env looks like this: > type LinkEnv = Map Name Module There are several reasons for this. First of all, the bug was caused by changing the module part of Names during the renaming process, without changing the Unique field. This caused names to be overwritten during the loading of .haddock files (which caches names using the NameCache of the GHC session). So we might create new Uniques during renaming to fix this (but I'm not sure that would be problem-free). Instead, we just keep the Name and add the Module where the name is best documented, since it can be useful to keep the original Name around (for e.g. source-code location info and for users of the Haddock API). Also, the names Link/NoLink don't really make sense, since wether to use links or not is entirely up to the users of DocName. In the process of following this change into H.Backends.Html I removed the assumption that binder names are Undocumented (which was just an unnecessary assumption, the OccName is the only thing needed to render these). This will probably make it possible to get rid of the renamer and replace it with a traversal from SYB or Uniplate. Since DocName has changed, InterfaceFile has changed so this patch also increments the file-format version. No backwards-compatibility is implemented.
* Add documentation for readInterfaceFileDavid Waern2008-01-071-1/+5
|
* Don't require -B <ghc-libdir> when no argument filesDavid Waern2007-11-111-8/+18
| | | | | | Change readInterfaceFile to take a Maybe Session, to avoid having to pass -B <ghc-libdir> to Haddock when there're no source files to process. This is nice when computing contents/index for external packages.
* Introduce InstalledInterface structure and add more stuff to the .haddock filesDavid Waern2007-11-101-26/+190
| | | | | | | We introduce InstalledInterface capturing the part of Interface that is stored in the interface files. We change the ppHtmlContents and ppHtmllIndex to take this structure instead of a partial Interface. We add stuff like the doc map and exported names to the .haddock file (via InstalledInterface).
* Synch loading of names from .haddock files with GHC's name cacheDavid Waern2007-11-081-8/+12
|
* Refactoring -- get rid of Haddock.PackagesDavid Waern2007-10-181-34/+38
|
* Add support for --read-interface againDavid Waern2007-10-181-6/+10
|
* Rename HaddockModule to InterfaceDavid Waern2007-08-301-5/+5
|
* Major refactoringDavid Waern2007-08-291-1/+1
|
* Add top module comment to all filesDavid Waern2007-08-171-0/+8
|
* Fix conflictsDavid Waern2007-07-111-1/+1
|
* update to compile with the latest GHC & CabalSimon Marlow2007-05-301-2/+3
|
* Follow changes to record constructor representationDavid Waern2007-07-111-1/+1
|
* Do save/read of interface files properlydavve@dtek.chalmers.se2007-04-051-22/+167
|
* De-flatten the namespacedavve@dtek.chalmers.se2007-03-251-1/+1
|
* Start work on Haddock APIdavve@dtek.chalmers.se2007-03-251-0/+50