[GHC] #9986: lhs -> hs fallout

#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

#9986: lhs -> hs fallout -------------------------------------+------------------------------------- Reporter: jstolarek | Owner: Type: task | Status: new Priority: normal | Milestone: Component: Documentation | Version: 7.9 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by simonpj): Excellent thanks. Might anyone make a patch? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9986#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#9986: lhs -> hs fallout -------------------------------------+------------------------------------- Reporter: jstolarek | Owner: Type: task | Status: patch Priority: normal | Milestone: Component: Documentation | Version: 7.9 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: D621 -------------------------------------+------------------------------------- Changes (by rodlogic): * status: new => patch * differential: => D621 Comment: Patch can be found here: https://phabricator.haskell.org/D621 -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9986#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#9986: lhs -> hs fallout -------------------------------------+------------------------------------- Reporter: jstolarek | Owner: Type: task | thoughtpolice Priority: normal | Status: patch Component: Documentation | Milestone: Resolution: | Version: 7.9 Operating System: Unknown/Multiple | Keywords: Type of failure: None/Unknown | Architecture: Blocked By: | Unknown/Multiple Related Tickets: | Test Case: | Blocking: | Differential Revisions: D621 -------------------------------------+------------------------------------- Changes (by simonpj): * owner: => thoughtpolice Comment: Austin, could you land this please? Simon -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9986#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#9986: lhs -> hs fallout
-------------------------------------+-------------------------------------
Reporter: jstolarek | Owner:
Type: task | thoughtpolice
Priority: normal | Status: patch
Component: Documentation | Milestone:
Resolution: | Version: 7.9
Operating System: Unknown/Multiple | Keywords:
Type of failure: None/Unknown | Architecture:
Blocked By: | Unknown/Multiple
Related Tickets: | Test Case:
| Blocking:
| Differential Revisions: D621
-------------------------------------+-------------------------------------
Comment (by Austin Seipp

#9986: lhs -> hs fallout -------------------------------------+------------------------------------- Reporter: jstolarek | Owner: Type: task | thoughtpolice Priority: normal | Status: closed Component: Documentation | Milestone: 7.12.1 Resolution: fixed | Version: 7.9 Operating System: Unknown/Multiple | Keywords: Type of failure: None/Unknown | Architecture: Blocked By: | Unknown/Multiple Related Tickets: | Test Case: | Blocking: | Differential Revisions: D621 -------------------------------------+------------------------------------- Changes (by thoughtpolice): * status: patch => closed * resolution: => fixed * milestone: => 7.12.1 -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9986#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC