[GHC] #9986: lhs -> hs fallout

GHC ghc-devs at haskell.org
Wed Jan 14 13:09:01 UTC 2015


#9986: lhs -> hs fallout
-------------------------------------+-------------------------------------
              Reporter:  jstolarek   |             Owner:
                  Type:  task        |            Status:  new
              Priority:  normal      |         Milestone:
             Component:              |           Version:  7.9
  Documentation                      |  Operating System:  Unknown/Multiple
              Keywords:              |   Type of failure:  None/Unknown
          Architecture:              |        Blocked By:
  Unknown/Multiple                   |   Related Tickets:
             Test Case:              |
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------
 It looks that during .lhs -> .hs switch the comments were not updated.
 Grepping for ".lhs" reveals 117 lines where .lhs files are referenced:

 {{{
 basicTypes/OccName.hs:154:-- see also: Note [Data Constructor Naming] in
 DataCon.lhs
 basicTypes/BasicTypes.hs:447:-- instance. See Note [Safe Haskell
 isSafeOverlap] (in `InstEnv.lhs`) for a
 basicTypes/BasicTypes.hs:874:      Note [Expanding variables] in
 Rules.lhs.
 basicTypes/Id.hs:579:-- See Note [Specialisations and RULES in IdInfo] in
 IdInfo.lhs
 basicTypes/Id.hs:689:        -- Another good example is in fill_in in
 PrelPack.lhs.  We should be able to
 basicTypes/DataCon.hs:407:                -- See also Note [Data-con
 worker strictness] in MkId.lhs
 basicTypes/MkId.hs:1194:   See DsUtils.lhs Note [Desugaring seq (1)] and
 (2) and (3)
 basicTypes/Var.hs:340:-- Ids, because Id.lhs uses 'mkGlobalId' etc with
 different types
 basicTypes/IdInfo.hs:423:-- CafInfo is used to build Static Reference
 Tables (see simplStg/SRT.lhs).
 cmm/CmmBuildInfoTables.hs:201:-- Adapted from simpleStg/SRT.lhs, which
 expects Id's.
 cmm/cmm-notes:98:SMRep.lhs
 cmm/cmm-notes:123:CodeGen.lhs
 cmm/cmm-notes:124:CgBindery.lhs
 cmm/cmm-notes:126:CgCase.lhs
 cmm/cmm-notes:127:CgClosure.lhs
 cmm/cmm-notes:128:CgCon.lhs
 cmm/cmm-notes:129:CgExpr.lhs
 cmm/cmm-notes:130:CgLetNoEscape.lhs
 cmm/cmm-notes:132:CgHeapery.lhs
 cmm/cmm-notes:135:CgMonad.lhs
 cmm/cmm-notes:139:CgStackery.lhs
 cmm/cmm-notes:140:CgTailCall.lhs
 cmm/cmm-notes:143:ClosureInfo.lhs
 codeGen/StgCmmBind.hs:744:        -- CgConTbls.lhs with a description
 generated from the data constructor
 codeGen/StgCmmExpr.hs:704:-- stgSyn/CoreToStg.lhs). Consider this:
 coreSyn/CorePrep.hs:111:9.  Replace (lazy e) by e.  See Note [lazyId
 magic] in MkId.lhs
 coreSyn/CoreUtils.hs:803:~~~~~~~~~~~~~~~~~~   in CoreUnfold.lhs
 coreSyn/CoreSyn.hs:245:-- See Note [GHC Formalism] in coreSyn/CoreLint.lhs
 coreSyn/CoreSyn.hs:268:-- See Note [GHC Formalism] in coreSyn/CoreLint.lhs
 coreSyn/CoreSyn.hs:274:-- See Note [GHC Formalism] in coreSyn/CoreLint.lhs
 coreSyn/CoreSyn.hs:289:-- See Note [GHC Formalism] in coreSyn/CoreLint.lhs
 coreSyn/CoreSyn.hs:438:-- See Note [GHC Formalism] in coreSyn/CoreLint.lhs
 coreSyn/CoreSyn.hs:764:                -- See Note [Extra args in rule
 matching] in Rules.lhs
 coreSyn/CoreSyn.hs:921:                       -- (see MkId.lhs, calls to
 mkCompulsoryUnfolding).
 coreSyn/CoreSyn.hs:1100:--   See Note [Expanding variables] in Rules.lhs
 coreSyn/CoreSyn.hs:1256:-- See Note [GHC Formalism] in
 coreSyn/CoreLint.lhs
 coreSyn/CoreSyn.hs:1445:-- See Note [GHC Formalism] in
 coreSyn/CoreLint.lhs
 coreSyn/CoreArity.hs:612:See Note [Dictionary-like types] in TcType.lhs
 for why we use
 coreSyn/CoreFVs.hs:294:            -- See Note [Finding rule RHS free
 vars] in OccAnal.lhs
 coreSyn/CoreFVs.hs:393:-- This actually happened in the defn of errorIO in
 IOBase.lhs:
 deSugar/DsExpr.hs:479:        T (recConErr t1 "M.lhs/230/op1")
 deSugar/DsExpr.hs:481:          (recConErr t1 "M.lhs/230/op3")
 deSugar/DsExpr.hs:486:        M.lhs, line 230: missing field op1 was
 evaluated
 deSugar/DsExpr.hs:531:          other        -> recUpdError "M.lhs/230"
 deSugar/DsForeign.hs:673:   -- codeGen/CodeGen.lhs; however, stginit
 functions have a negative impact
 deSugar/Check.hs:56: @Match.lhs@ to generate code)
 deSugar/Check.hs:631:tidy_eqn does more or less the same thing as @tidy@
 in @Match.lhs@;
 ghci/ByteCodeGen.hs:1157:             -- the DataCon.  See DataCon.lhs for
 details.
 ghci/Linker.hs:1109:            -- compiler/ghci/Linker.lhs + rts/Linker.c
 link the
 ghc.mk:243:#            Generate supporting stuff for prelude/PrimOp.lhs
 hsSyn/HsDecls.hs:371:   (DefMeth is defined in Class.lhs)
 hsSyn/Convert.hs:884:        -- Convert.lhs, hence panic
 iface/IfaceType.hs:467:-- See equivalent function in TypeRep.lhs
 iface/LoadIface.hs:197:                -- compiling Float.lhs, which
 mentions Float of course
 main/HscMain.hs:356:            --   - filter out the .hs/.lhs source
 filename if we have one
 main/TidyPgm.hs:1266:    -- split (see Note [Worker-wrapper for bottoming
 functions] in WorkWrap.lhs
 main/GHC.hs:1182:{- ToDo: Move the primary logic here to
 compiler/main/Packages.lhs
 main/DriverPhases.hs:52:   literate pre-processor | .lhs          | -
 | -
 main/Finder.hs:307:-- not a reexport (this invariant is upheld by
 @Packages.lhs@) and (2)
 main/DriverPipeline.hs:827:       --
 libraries/hpc/tests/function/subdir/tough2.lhs
 main/DriverPipeline.hs:1687:          -- compiler/nativeGen/AsmCodeGen.lhs
 for another instance
 main/HscTypes.hs:1066:                                         -- See Note
 [Overall plumbing for rules] in Rules.lhs
 main/HscTypes.hs:2704:This stuff is in here, rather than (say) in
 Linker.lhs, because the Linker.lhs
 nativeGen/PPC/CodeGen.hs:893:      nonvolatile registers differs (see
 MachRegs.lhs).
 nativeGen/PIC.hs:748:-- (See PprMach.lhs)
 nativeGen/RegAlloc/Graph/TrivColorable.hs:73:32% of total compile time and
 42% of total alloc when compiling SHA1.lhs from darcs.
 nativeGen/RegAlloc/Graph/TrivColorable.hs:81:the most efficient variant
 tried. Benchmark compiling 10-times SHA1.lhs follows.
 parser/cutils.h:9:// Out-of-line string functions, see PrimPacked.lhs
 prelude/TysPrim.hs:333:-- See Note [GHC Formalism] in coreSyn/CoreLint.lhs
 prelude/TysPrim.hs:531:defined in \tr{TysWiredIn.lhs}, not here.
 prelude/PrimOp.hs:188:is done with plain ccalls now (see
 PrelNumExtra.lhs).
 prelude/PrimOp.hs:486:@primOpIsCheap@, as used in \tr{SimplUtils.lhs}.
 For now (HACK
 prelude/PrelRules.hs:1006:  -- See Note [Integer division constant
 folding] in libraries/base/GHC/Real.lhs
 prelude/PrelRules.hs:1137:-- See Note [magicDictId magic] in
 `basicTypes/MkId.lhs`
 rename/RnPat.hs:238:    --       before going on to the RHSes (see
 RnSource.lhs).
 rename/RnEnv.hs:1374:                -- See Note [Binders in Template
 Haskell] in Convert.lhs
 rename/RnExpr.hs:316:wired-in. See the Note about the NameSorts in
 Name.lhs.
 simplCore/SimplUtils.hs:1491:                  poly_id   =
 transferPolyIdInfo var tvs_here $ -- Note [transferPolyIdInfo] in Id.lhs
 simplCore/SimplUtils.hs:1624:was like this (base/Foreign/C/Err/Error.lhs):
 simplCore/OccurAnal.hs:286:recursive functions] in Simplify.lhs
 simplCore/FloatIn.hs:86:SetLevels.lhs module, which tags things with their
 level numbers.
 simplCore/SetLevels.hs:830:       -- See Note [Computing one-shot info] in
 Demand.lhs
 simplCore/SetLevels.hs:1053:    mk_poly_bndr bndr uniq =
 transferPolyIdInfo bndr abs_vars $         -- Note [transferPolyIdInfo] in
 Id.lhs
 simplCore/SimplCore.hs:299:                        -- Reason: see Note
 [Shadowing] in SpecConstr.lhs
 simplCore/SimplCore.hs:634:                -- See Note [Overall plumbing
 for rules] in Rules.lhs
 simplCore/Simplify.hs:55:the simplifier is in SimplCore.lhs.
 simplCore/Simplify.hs:2161:        -- See Note [Data-con worker
 strictness] in MkId.lhs
 simplCore/Simplify.hs:2630:The Ord instance of Maybe in PrelMaybe.lhs, for
 example, took several extra
 simplStg/UnariseStg.hs:66:  where -- See Note [Nullary unboxed tuple] in
 Type.lhs
 specialise/SpecConstr.hs:1839:        -- See Note [Matching lets] in
 Rule.lhs
 specialise/SpecConstr.hs:1845:{- Disabled; see Note [Matching cases] in
 Rule.lhs
 stgSyn/CoreToStg.hs:92:-- constructing SRTs (see SRT.lhs).
 stgSyn/CoreToStg.hs:444:        -- See Note [Nullary unboxed tuple] in
 Type.lhs
 stranal/DmdAnal.hs:1089:-- See Note [Trimming a demand to a type] in
 Demand.lhs
 typecheck/TcForeign.hs:137:                   -- See Note [Expanding
 newtypes] in TyCon.lhs
 typecheck/FamInst.hs:327:-- in FamInstEnv.lhs
 typecheck/TcExpr.hs:1321:Note [Converting strings] in Convert.lhs
 typecheck/TcType.hs:259:It's knot-tied back to Var.lhs.  There is no
 reason in principle
 typecheck/TcType.hs:260:why Var.lhs shouldn't actually have the
 definition, but it "belongs" here.
 typecheck/TcEvidence.hs:138:                  [TcCoercion]            --
 See [CoAxiom Index] in Coercion.lhs
 typecheck/TcPat.hs:679:As explained by [Wrappers for data instance tycons]
 in MkIds.lhs, the
 typecheck/TcInteract.hs:1524:To achieve this required some refactoring of
 FunDeps.lhs (nicer
 typecheck/TcTyClsDecls.hs:1490:    -- See Note [GADT record selectors] in
 MkId.lhs
 types/Kind.hs:218:-- See Note [GHC Formalism] in coreSyn/CoreLint.lhs
 types/Kind.hs:234:-- See Note [GHC Formalism] in coreSyn/CoreLint.lhs
 types/CoAxiom.hs:231:-- See Note [GHC Formalism] in coreSyn/CoreLint.lhs
 types/TyCon.hs:162:See also Note [Wrappers for data instance tycons] in
 MkId.lhs
 types/TyCon.hs:349:-- See Note [GHC Formalism] in coreSyn/CoreLint.lhs
 types/TypeRep.hs:98:-- See Note [GHC Formalism] in coreSyn/CoreLint.lhs
 types/Coercion.hs:126:-- See Note [GHC Formalism] in coreSyn/CoreLint.lhs
 types/Coercion.hs:203:-- See Note [GHC Formalism] in coreSyn/CoreLint.lhs
 types/Coercion.hs:945:-- of Coercion and the Note [Refl invariant] in
 types/TypeRep.lhs.
 types/Type.hs:606:interfaces.  Notably this plays a role in tcTySigs in
 TcBinds.lhs.
 types/Type.hs:819:-- See Note [GHC Formalism] in coreSyn/CoreLint.lhs
 types/Type.hs:1324:-- See Note [Kind Constraint and kind *] in Kinds.lhs
 types/Unify.hs:235:-- thing to do.  C.f. Note [Matching variable types] in
 Rules.lhs
 utils/Binary.hs:476:-- yes, we need Binary Integer and Binary Rational in
 basicTypes/Literal.lhs
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9986>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list