* RTS: interaction with the runtime system (closure and table representation)
* Utils: utility code or code that doesn't easily belong to another directory (e.g., Outputable, SysTools, Elf, Finder, etc.)
* Plugin: modules to import to write compiler plugins
Actual renaming: see CodeBaseCleanup/ModuleRenaming
Issues:
* name clashes: some modules in `base` (e.g. GHC.Desugar) and `ghc-prim` (e.g. GHC.Types) use the same GHC prefix
* maybe we should put all GHC extensions to base under GHC.Exts.* or GHC.Base.*
* use GHC.Builtin.Primitive.* prefix in ghc-prim?
TODO in the future:
* Fix comments:
* Several references to Note "Remote Template Haskell" (supposedly in libraries/ghci/GHCi/TH.hs) but it doesn't exist. Maybe replaced by Note "Remote GHCi"?
* Undefined reference to "fill_in in PrelPack.hs" from GHC.Entity.Id
* Undefined reference to CgConTbls.hs from GHC.Compiler.StgToCmm.Binding
* Undefined reference to PprMach.hs from GHC.Compiler.CmmToAsm.PIC
* Undefined reference to Renaming.hs from GHC.IR.Core.Transformer.Substitution
* Undefined reference to simplStg/SRT.hs from GHC.IR.Cmm.Transformer.InfoTableBuilder
* Undefined reference to codeGen/CodeGen.hs from GHC.Compiler.HaskellToCore.Foreign.Declaration
* Undefined reference to RegArchBase.hs from GHC.Compiler.CmmToAsm.Register.Allocator.Graph.ArchX86
* Undefined reference to MachRegs*.hs and MachRegs.hs from GHC.Compiler.CmmToAsm.Register.Allocator.Graph.ArchBase
* Binutils 2.17 is from 2011. Maybe we could remove the Hack in GHC.Compiler.CmmToAsm.X86.CodeGen
* Rename CAF into "static thunk"?
* put notes files (e.g. profiling-notes, *.tex files) into actual notes or in the wiki
* Fix traces of RnHsSyn that doesn't exist anymore
* References to "NCG" should be replaced with reference to "CmmToAsm compiler"
* Foreign export stubs are generated in GHC.Compiler.HaskellToCore.Foreign.Declaration...
* Tests still reflect the old hierarchy (e.g., simplCore/should_compile) but renaming them could break other tools
Questions:
* Why don't we use the mangled selector name ($sel:foo:MkT) in every cases (not only when we have -XDuplicateRecordFields) instead of using the ambiguous one (foo)?
* Incidentally, partially answered yesterday (2017-06-12) on ticket #13352
== Step 2: split and edit some modules
Some modules contain a lot of (unrelated) stuff. We should split them.
* GHC.Utils (previously compiler/utils/Util.hs) contains a lot of stuff that should be split