|
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: Type: bug | Status: new Priority: highest | Milestone: 7.6.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ In HEAD, the libHSghc DLL currently contains about 75000 symbols, but DLLs can only have about 65000 symbols. This means that when you try to run anything that uses the libHSghc DLL, references get resolved incorrectly and the GCer segfaults. Max ran into this before, and temporarily fixed it with: {{{ commit dd391759500ab2b6abd23d502ade7ff8946c780f Author: Max Bolingbroke <[hidden email]> Date: Wed Jul 6 18:01:02 2011 +0100 Don't export the _info symbol for the data constructor worker bindings }}} but the number of symbols has since crept up. Three possible solutions: * Split the ghc package up into `ghc-base`, `ghc-codegen`, `ghc- nativegen`, etc. * Export fewer things. We'd first have to do this at the Haskell level (i.e. stop exposing some modules in the .cabal file; this may upset GHC API users), and then thread this info through so that we can tell the linker which symbols we do/don't want it to expose. Unfortunately, re- exports at the Haskell level mean that it isn't as simple as just not exporting anything from modules that aren't exposed. * Automatically split the package into 2 DLLs. The tricky bit here is that we'd need dependencies to go only in one direction, i.e. if libHSghc1.dll uses symbols from libHSghc2.dll, then libHSghc2.dll doesn't use any symbols from libHSghc1.dll. Ideally Cabal would have a way to do this automatically, and the GHC build system would use the split that it calculates. However, i don't think Cabal has enough info to do this currently. It would also be good if we can detect that building a DLL has gone wrong, and give an error. -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs |
|
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: Type: bug | Status: new Priority: highest | Milestone: 7.6.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Comment(by batterseapower): I reported a bug to binutils over 5 months ago asking them to make "ld" error out when this happens, but there is no indication that anyone has even read the bug. I even provided a patch, so this is a bit disappointing :-( The bug is at http://sourceware.org/bugzilla/show_bug.cgi?id=12969 -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: Type: bug | Status: new Priority: highest | Milestone: 7.6.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Comment(by igloo): Simon Marlow says: There is one problem that I know of with breaking up the compiler into separate packages: GHC will do too much recompilation when things change, which will make development somewhat painful. I discovered this when making changes in hoopl: a small change in hoopl causes recompilation of nearly every module in GHC. The reason is the way that GHC records dependencies across packages: rather than the fine-grained dependencies we get within a package, a dependency on a package module records only the ABI hash of the whole module. -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: Type: bug | Status: new Priority: highest | Milestone: 7.6.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Comment(by simonpj): I mis-read Max's comment. I thought he was saying that we (the GHC crowd) have been ignoring the ticket. But actually he's saying that he offered a patch to the `binutils` folk, but they have ignored it so far. Does anyone know anyone who who might help un-glue the `binutils` process? Simon -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:3> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: Type: bug | Status: new Priority: highest | Milestone: 7.6.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Comment(by igloo): Note that the binutils patch doesn't actually fix the problem: It just means that the GHC build will fail, rather than silently making a bogus DLL. -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:4> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: igloo Type: bug | Status: new Priority: highest | Milestone: 7.6.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Changes (by igloo): * owner: => igloo -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:5> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: igloo Type: bug | Status: new Priority: highest | Milestone: 7.6.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Comment(by igloo@…): commit 6c29fad6a1ab20e8cfed5ad4af406a821ee74291 {{{ Author: Ian Lynagh <[hidden email]> Date: Fri Jun 29 17:47:32 2012 +0100 Don't build the ghc DLL on Windows; works around trac #5987 We also don't build DLLs for the dph-lifted-* packages as they depend on ghc. compiler/ghc.mk | 8 ++++++++ ghc.mk | 12 ++++++++++++ rules/build-package.mk | 2 +- 3 files changed, 21 insertions(+), 1 deletions(-) }}} -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:6> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: igloo Type: bug | Status: new Priority: highest | Milestone: 7.6.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Comment(by igloo@…): commit 5ddc841a547d2d37428280b04c071a1d4b83e10d {{{ Author: Ian Lynagh <[hidden email]> Date: Fri Jun 29 01:33:17 2012 +0100 On Windows, detect if DLLs have too many symbols; trac #5987 The test isn't very pretty; it involves trawling through the objdump -p output. I couldn't find an easier way, unfortuantely. configure.ac | 7 +++++++ mk/config.mk.in | 1 + rules/build-package-way.mk | 3 +++ 3 files changed, 11 insertions(+), 0 deletions(-) }}} -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:7> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: igloo Type: bug | Status: new Priority: highest | Milestone: 7.8.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Changes (by igloo): * milestone: 7.6.1 => 7.8.1 Comment: This isn't fixed, but (a) we now detect it if it happens, and (b) we no longer build a broken ghc package DLL (because we don't build the DLL at all). So we still need a proper fix, but this will do for now. -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:8> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: Type: bug | Status: new Priority: highest | Milestone: 7.8.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Changes (by igloo): * owner: igloo => -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:9> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: Type: bug | Status: new Priority: highest | Milestone: 7.8.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Comment(by marlowsd@…): commit 99fd2469fba1a38b2a65b4694f337d92e559df01 {{{ Merge: d260d91... 0d19922... Author: Simon Marlow <[hidden email]> Date: Wed Jul 4 10:34:48 2012 +0100 Merge remote-tracking branch 'origin/master' into newcg * origin/master: (756 commits) don't crash if argv[0] == NULL (#7037) -package P was loading all versions of P in GHCi (#7030) Add a Note, copying text from #2437 improve the --help docs a bit (#7008) Copy Data.HashTable's hashString into our Util module Build fix Build fixes Parse error: suggest brackets and indentation. Don't build the ghc DLL on Windows; works around trac #5987 On Windows, detect if DLLs have too many symbols; trac #5987 Add some more Integer rules; fixes #6111 Fix PA dfun construction with silent superclass args Add silent superclass parameters to the vectoriser Add silent superclass parameters (again) Mention Generic1 in the user's guide Make the GHC API a little more powerful. tweak llvm version warning message New version of the patch for #5461. Fix Word64ToInteger conversion rule. Implemented feature request on reconfigurable pretty-printing in GHCi (#5461) ... Conflicts: compiler/basicTypes/UniqSupply.lhs compiler/cmm/CmmBuildInfoTables.hs compiler/cmm/CmmLint.hs compiler/cmm/CmmOpt.hs compiler/cmm/CmmPipeline.hs compiler/cmm/CmmStackLayout.hs compiler/cmm/MkGraph.hs compiler/cmm/OldPprCmm.hs compiler/codeGen/CodeGen.lhs compiler/codeGen/StgCmm.hs compiler/codeGen/StgCmmBind.hs compiler/codeGen/StgCmmLayout.hs compiler/codeGen/StgCmmUtils.hs compiler/main/CodeOutput.lhs compiler/main/HscMain.hs compiler/nativeGen/AsmCodeGen.lhs compiler/simplStg/SimplStg.lhs .authorspellings | 29 - .darcs-boring | 256 --- .gitignore | 1 + README | 11 +- aclocal.m4 | 96 +- bindisttest/Makefile | 4 +- bindisttest/ghc.mk | 4 +- compiler/HsVersions.h | 13 +- compiler/basicTypes/BasicTypes.lhs | 44 +- compiler/basicTypes/DataCon.lhs | 33 +- compiler/basicTypes/Demand.lhs | 3 - compiler/basicTypes/Id.lhs | 21 +- compiler/basicTypes/IdInfo.lhs | 17 +- compiler/basicTypes/Literal.lhs | 56 +- compiler/basicTypes/MkId.lhs | 74 +- compiler/basicTypes/MkId.lhs-boot | 3 + compiler/basicTypes/Name.lhs | 5 +- compiler/basicTypes/NameEnv.lhs | 32 +- compiler/basicTypes/OccName.lhs | 13 +- compiler/basicTypes/RdrName.lhs | 46 +- compiler/basicTypes/SrcLoc.lhs | 279 ++-- compiler/basicTypes/UniqSupply.lhs | 9 +- compiler/basicTypes/Unique.lhs | 37 +- compiler/basicTypes/Var.lhs | 40 +- compiler/cmm/Bitmap.hs | 2 +- compiler/cmm/CLabel.hs | 117 +- compiler/cmm/Cmm.hs | 10 +- compiler/cmm/CmmBuildInfoTables.hs | 38 +- compiler/cmm/CmmCvt.hs | 2 +- compiler/cmm/CmmExpr.hs | 4 + compiler/cmm/CmmInfo.hs | 4 +- compiler/cmm/CmmLint.hs | 71 +- compiler/cmm/CmmMachOp.hs | 9 +- compiler/cmm/CmmOpt.hs | 31 +- compiler/cmm/CmmParse.y | 10 +- compiler/cmm/CmmPipeline.hs | 22 +- compiler/cmm/CmmProcPoint.hs | 2 +- compiler/cmm/CmmStackLayout.hs | 591 +++++ compiler/cmm/CmmType.hs | 6 + compiler/cmm/CmmUtils.hs | 7 +- compiler/cmm/OldCmm.hs | 9 +- compiler/cmm/OldCmmLint.hs | 70 +- compiler/cmm/OldCmmUtils.hs | 1 + compiler/cmm/OldPprCmm.hs | 99 +- compiler/cmm/OptimizationFuel.hs | 1 + compiler/cmm/PprC.hs | 76 +- compiler/cmm/PprCmm.hs | 109 +- compiler/cmm/PprCmmDecl.hs | 97 +- compiler/cmm/PprCmmExpr.hs | 117 +- compiler/codeGen/CgBindery.lhs | 27 +- compiler/codeGen/CgCase.lhs | 1 - compiler/codeGen/CgClosure.lhs | 29 +- compiler/codeGen/CgCon.lhs | 11 +- compiler/codeGen/CgExpr.lhs | 2 +- compiler/codeGen/CgForeignCall.hs | 8 +- compiler/codeGen/CgInfoTbls.hs | 5 +- compiler/codeGen/CgMonad.lhs | 1 + compiler/codeGen/CgParallel.hs | 69 +- compiler/codeGen/CgPrimOp.hs | 186 ++- compiler/codeGen/CgProf.hs | 3 +- compiler/codeGen/CgStackery.lhs | 3 +- compiler/codeGen/CgTailCall.lhs | 1 + compiler/codeGen/CgTicky.hs | 13 +- compiler/codeGen/CgUtils.hs | 13 +- compiler/codeGen/ClosureInfo.lhs | 50 +- compiler/codeGen/CodeGen.lhs | 3 +- compiler/codeGen/StgCmm.hs | 5 +- compiler/codeGen/StgCmmBind.hs | 47 +- compiler/codeGen/StgCmmClosure.hs | 68 +- compiler/codeGen/StgCmmCon.hs | 4 +- compiler/codeGen/StgCmmEnv.hs | 1 - compiler/codeGen/StgCmmExpr.hs | 2 +- compiler/codeGen/StgCmmForeign.hs | 7 +- compiler/codeGen/StgCmmGran.hs | 57 +- compiler/codeGen/StgCmmHeap.hs | 10 +- compiler/codeGen/StgCmmLayout.hs | 27 +- compiler/codeGen/StgCmmMonad.hs | 12 +- compiler/codeGen/StgCmmPrim.hs | 17 +- compiler/codeGen/StgCmmProf.hs | 3 +- compiler/codeGen/StgCmmTicky.hs | 19 +- compiler/codeGen/StgCmmUtils.hs | 14 +- compiler/coreSyn/CoreArity.lhs | 10 +- compiler/coreSyn/CoreFVs.lhs | 20 +- compiler/coreSyn/CoreLint.lhs | 531 ++--- compiler/coreSyn/CorePrep.lhs | 481 ++-- compiler/coreSyn/CoreSubst.lhs | 5 +- compiler/coreSyn/CoreSyn.lhs | 92 +- compiler/coreSyn/CoreTidy.lhs | 4 +- compiler/coreSyn/CoreUnfold.lhs | 165 +- compiler/coreSyn/CoreUtils.lhs | 275 ++- compiler/coreSyn/MkCore.lhs | 54 +- compiler/coreSyn/MkExternalCore.lhs | 199 +- compiler/coreSyn/PprCore.lhs | 261 ++-- compiler/coreSyn/TrieMap.lhs | 137 +- compiler/deSugar/Coverage.lhs | 510 +++-- compiler/deSugar/Desugar.lhs | 9 +- compiler/deSugar/DsArrows.lhs | 4 +- compiler/deSugar/DsBinds.lhs | 208 ++- compiler/deSugar/DsCCall.lhs | 13 +- compiler/deSugar/DsExpr.lhs | 63 +- compiler/deSugar/DsForeign.lhs | 136 +- compiler/deSugar/DsListComp.lhs | 50 +- compiler/deSugar/DsMeta.hs | 1005 +++++---- compiler/deSugar/DsMonad.lhs | 19 +- compiler/deSugar/DsUtils.lhs | 4 +- compiler/deSugar/Match.lhs | 2 +- compiler/deSugar/MatchCon.lhs | 17 +- compiler/ghc.cabal.in | 42 +- compiler/ghc.mk | 28 +- compiler/ghci/ByteCodeAsm.lhs | 599 +++--- compiler/ghci/ByteCodeGen.lhs | 276 ++- compiler/ghci/ByteCodeItbls.lhs | 31 +- compiler/ghci/ByteCodeLink.lhs | 14 +- compiler/ghci/Debugger.hs | 11 +- compiler/ghci/DebuggerUtils.hs | 4 +- compiler/ghci/LibFFI.hsc | 4 +- compiler/ghci/Linker.lhs | 705 +++--- compiler/ghci/ObjLink.lhs | 41 +- compiler/ghci/RtClosureInspect.hs | 180 +- compiler/hsSyn/Convert.lhs | 353 ++-- compiler/hsSyn/HsBinds.lhs | 44 +- compiler/hsSyn/HsDecls.lhs | 419 ++-- compiler/hsSyn/HsExpr.lhs | 46 +- compiler/hsSyn/HsImpExp.lhs | 19 +- compiler/hsSyn/HsPat.lhs | 11 +- compiler/hsSyn/HsSyn.lhs | 3 +- compiler/hsSyn/HsTypes.lhs | 406 ++-- compiler/hsSyn/HsUtils.lhs | 94 +- compiler/iface/BinIface.hs | 169 +- compiler/iface/BuildTyCl.lhs | 15 +- compiler/iface/FlagChecker.hs | 46 +- compiler/iface/IfaceEnv.lhs | 25 +- compiler/iface/IfaceSyn.lhs | 39 +- compiler/iface/IfaceType.lhs | 154 +- compiler/iface/LoadIface.lhs | 15 +- compiler/iface/MkIface.lhs | 254 ++- compiler/iface/TcIface.lhs | 198 ++- compiler/llvmGen/Llvm.hs | 1 - compiler/llvmGen/Llvm/PpLlvm.hs | 106 +- compiler/llvmGen/LlvmCodeGen.hs | 41 +- compiler/llvmGen/LlvmCodeGen/Base.hs | 16 +- compiler/llvmGen/LlvmCodeGen/CodeGen.hs | 57 +- compiler/llvmGen/LlvmCodeGen/Ppr.hs | 13 +- compiler/main/Annotations.hs | 107 + compiler/main/Annotations.lhs | 108 - compiler/main/CmdLineParser.hs | 4 +- compiler/main/CodeOutput.lhs | 13 +- compiler/main/Constants.lhs | 4 + compiler/main/DriverMkDepend.hs | 10 +- compiler/main/DriverPipeline.hs | 106 +- compiler/main/DynFlags.hs | 412 +++- compiler/main/DynFlags.hs-boot | 13 + compiler/main/DynamicLoading.hs | 21 +- compiler/main/ErrUtils.lhs | 119 +- compiler/main/ErrUtils.lhs-boot | 1 + compiler/main/GHC.hs | 192 ++- compiler/main/GhcMake.hs | 1306 ++++++------ compiler/main/HeaderInfo.hs | 78 +- compiler/main/HscMain.hs | 325 ++-- compiler/main/HscStats.hs | 160 ++ compiler/main/HscStats.lhs | 12 +- compiler/main/HscTypes.lhs | 105 +- compiler/main/InteractiveEval.hs | 99 +- compiler/main/PackageConfig.hs | 50 +- compiler/main/Packages.lhs | 437 ++-- compiler/main/StaticFlagParser.hs | 38 +- compiler/main/StaticFlags.hs | 68 +- compiler/main/SysTools.lhs | 25 +- compiler/main/TidyPgm.lhs | 749 ++++--- compiler/nativeGen/AsmCodeGen.lhs | 647 +++--- compiler/nativeGen/PIC.hs | 93 +- compiler/nativeGen/PPC/CodeGen.hs | 33 +- compiler/nativeGen/PPC/Ppr.hs | 567 +++--- compiler/nativeGen/PPC/Regs.hs | 14 +- compiler/nativeGen/PprBase.hs | 17 - compiler/nativeGen/RegAlloc/Graph/Main.hs | 609 +++--- compiler/nativeGen/RegAlloc/Graph/SpillCost.hs | 10 +- compiler/nativeGen/RegAlloc/Graph/Stats.hs | 30 +- compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs | 56 +- compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs | 14 +- compiler/nativeGen/RegAlloc/Linear/Main.hs | 44 +- compiler/nativeGen/RegAlloc/Liveness.hs | 68 +- compiler/nativeGen/SPARC/CodeGen.hs | 511 ++++- compiler/nativeGen/SPARC/CodeGen/CCall.hs | 343 --- compiler/nativeGen/SPARC/CodeGen/CondCode.hs | 7 +- compiler/nativeGen/SPARC/CodeGen/Gen64.hs | 3 +- compiler/nativeGen/SPARC/CodeGen/Sanity.hs | 10 +- compiler/nativeGen/SPARC/Imm.hs | 5 +- compiler/nativeGen/SPARC/Ppr.hs | 94 +- compiler/nativeGen/TargetReg.hs | 70 +- compiler/nativeGen/X86/CodeGen.hs | 458 +++-- compiler/nativeGen/X86/Instr.hs | 3 + compiler/nativeGen/X86/Ppr.hs | 155 +- compiler/nativeGen/X86/Regs.hs | 43 +- compiler/parser/Lexer.x | 75 +- compiler/parser/Parser.y.pp | 143 +- compiler/parser/ParserCore.y | 34 +- compiler/parser/RdrHsSyn.lhs | 330 ++-- compiler/prelude/ForeignCall.lhs | 56 +- compiler/prelude/PrelNames.lhs | 136 +- compiler/prelude/PrelRules.lhs | 212 ++- compiler/prelude/PrimOp.lhs | 3 - compiler/prelude/PrimOp.lhs-boot | 7 + compiler/prelude/TysPrim.lhs | 114 +- compiler/prelude/TysWiredIn.lhs | 88 +- compiler/prelude/primops.txt.pp | 39 + compiler/profiling/CostCentre.lhs | 6 +- compiler/profiling/ProfInit.hs | 9 +- compiler/profiling/SCCfinal.lhs | 1 + compiler/rename/RnBinds.lhs | 80 +- compiler/rename/RnEnv.lhs | 470 +++-- compiler/rename/RnExpr.lhs | 80 +- compiler/rename/RnHsSyn.lhs | 159 -- compiler/rename/RnNames.lhs | 194 +-- compiler/rename/RnPat.lhs | 41 +- compiler/rename/RnSource.lhs | 563 +++--- compiler/rename/RnTypes.lhs | 652 ++++-- compiler/simplCore/CSE.lhs | 30 +- compiler/simplCore/CoreMonad.lhs | 61 +- compiler/simplCore/FloatIn.lhs | 18 +- compiler/simplCore/OccurAnal.lhs | 116 +- compiler/simplCore/SetLevels.lhs | 41 +- compiler/simplCore/SimplCore.lhs | 92 +- compiler/simplCore/SimplEnv.lhs | 1 + compiler/simplCore/SimplMonad.lhs | 3 +- compiler/simplCore/SimplUtils.lhs | 234 +-- compiler/simplCore/Simplify.lhs | 131 +- compiler/simplStg/SRT.lhs | 4 +- compiler/simplStg/SimplStg.lhs | 14 +- compiler/simplStg/UnariseStg.lhs | 167 ++ compiler/specialise/Rules.lhs | 584 +++--- compiler/specialise/SpecConstr.lhs | 13 +- compiler/specialise/Specialise.lhs | 1070 +++++----- compiler/stgSyn/CoreToStg.lhs | 41 +- compiler/stgSyn/StgLint.lhs | 71 +- compiler/stgSyn/StgSyn.lhs | 48 +- compiler/stranal/DmdAnal.lhs | 17 +- compiler/stranal/WorkWrap.lhs | 88 +- compiler/stranal/WwLib.lhs | 56 +- compiler/typecheck/FamInst.lhs | 78 +- compiler/typecheck/Inst.lhs | 104 +- compiler/typecheck/TcArrows.lhs | 4 +- compiler/typecheck/TcBinds.lhs | 485 ++--- compiler/typecheck/TcCanonical.lhs | 1384 ++++++------- compiler/typecheck/TcClassDcl.lhs | 124 +- compiler/typecheck/TcDeriv.lhs | 292 ++- compiler/typecheck/TcEnv.lhs | 194 +- compiler/typecheck/TcErrors.lhs | 388 ++-- compiler/typecheck/TcEvidence.lhs | 159 ++- compiler/typecheck/TcExpr.lhs | 88 +- compiler/typecheck/TcForeign.lhs | 104 +- compiler/typecheck/TcGenDeriv.lhs | 12 +- compiler/typecheck/TcGenGenerics.lhs | 515 ++++- compiler/typecheck/TcHsSyn.lhs | 184 +- compiler/typecheck/TcHsType.lhs | 1528 +++++++------ compiler/typecheck/TcInstDcls.lhs | 433 +++-- compiler/typecheck/TcInteract.lhs | 1171 +++++----- compiler/typecheck/TcMType.lhs | 828 ++++---- compiler/typecheck/TcMatches.lhs | 70 +- compiler/typecheck/TcPat.lhs | 77 +- compiler/typecheck/TcRnDriver.lhs | 231 ++- compiler/typecheck/TcRnMonad.lhs | 80 +- compiler/typecheck/TcRnTypes.lhs | 326 ++-- compiler/typecheck/TcRules.lhs | 197 ++- compiler/typecheck/TcSMonad.lhs | 1493 ++++++++------ compiler/typecheck/TcSimplify.lhs | 1115 ++++++---- compiler/typecheck/TcSplice.lhs | 157 +- compiler/typecheck/TcSplice.lhs-boot | 7 +- compiler/typecheck/TcTyClsDecls.lhs | 848 ++++---- compiler/typecheck/TcTyDecls.lhs | 18 +- compiler/typecheck/TcType.lhs | 131 +- compiler/typecheck/TcUnify.lhs | 237 +-- compiler/types/Class.lhs | 3 - compiler/types/Coercion.lhs | 22 +- compiler/types/FamInstEnv.lhs | 12 +- compiler/types/FunDeps.lhs | 91 +- compiler/types/IParam.lhs | 41 - compiler/types/IParam.lhs-boot | 10 - compiler/types/InstEnv.lhs | 71 +- compiler/types/Kind.lhs | 240 +-- compiler/types/OptCoercion.lhs | 1 + compiler/types/TyCon.lhs | 871 ++++---- compiler/types/Type.lhs | 303 ++-- compiler/types/TypeRep.lhs | 172 +- compiler/types/Unify.lhs | 59 +- compiler/utils/Binary.hs | 3 - compiler/utils/Digraph.lhs | 17 +- compiler/utils/Exception.hs | 6 +- compiler/utils/FastString.lhs | 5 - compiler/utils/GraphColor.hs | 597 +++--- compiler/utils/GraphOps.hs | 923 ++++---- compiler/utils/ListSetOps.lhs | 79 +- compiler/utils/MonadUtils.hs | 18 - compiler/utils/Outputable.lhs | 268 +-- compiler/utils/Outputable.lhs-boot | 7 + compiler/utils/Panic.lhs | 197 ++- compiler/utils/Platform.hs | 14 +- compiler/utils/Pretty.lhs | 9 +- compiler/utils/UniqFM.lhs | 4 +- compiler/utils/Util.lhs | 211 +- compiler/vectorise/Vectorise.hs | 21 +- compiler/vectorise/Vectorise/Builtins/Base.hs | 2 +- .../vectorise/Vectorise/Builtins/Initialise.hs | 2 +- compiler/vectorise/Vectorise/Convert.hs | 9 +- compiler/vectorise/Vectorise/Env.hs | 9 +- compiler/vectorise/Vectorise/Exp.hs | 716 +++++-- .../vectorise/Vectorise/Generic/Description.hs | 3 +- compiler/vectorise/Vectorise/Generic/PADict.hs | 41 +- compiler/vectorise/Vectorise/Generic/PAMethods.hs | 27 +- compiler/vectorise/Vectorise/Generic/PData.hs | 4 +- compiler/vectorise/Vectorise/Monad.hs | 20 +- compiler/vectorise/Vectorise/Monad/Base.hs | 41 +- compiler/vectorise/Vectorise/Monad/Global.hs | 9 +- compiler/vectorise/Vectorise/Monad/InstEnv.hs | 18 +- compiler/vectorise/Vectorise/Type/Classify.hs | 1 + compiler/vectorise/Vectorise/Type/TyConDecl.hs | 29 +- compiler/vectorise/Vectorise/Type/Type.hs | 1 + compiler/vectorise/Vectorise/Utils/Base.hs | 19 +- compiler/vectorise/Vectorise/Utils/PADict.hs | 74 +- config.guess | 482 ++--- configure.ac | 156 +- distrib/compare/compare.hs | 23 +- docs/coding-style.html | 60 +- docs/comm/genesis/modules.html | 2 +- docs/comm/rts-libs/threaded-rts.html | 2 +- docs/ext-core/Makefile | 3 - docs/ext-core/a4wide.sty | 39 - docs/ext-core/code.sty | 83 - docs/ext-core/core.bib | 124 - docs/ext-core/core.tex | 779 ------- docs/ext-core/ghc.mk | 15 - docs/index.html.in | 22 +- docs/users_guide/bugs.xml | 26 +- docs/users_guide/external_core.xml | 1807 +++++++++++++++ docs/users_guide/ffi-chap.xml | 52 + docs/users_guide/flags.xml | 103 +- docs/users_guide/ghci.xml | 119 +- docs/users_guide/glasgow_exts.xml | 694 ++++-- docs/users_guide/packages.xml | 108 +- docs/users_guide/phases.xml | 25 +- docs/users_guide/runghc.xml | 2 +- docs/users_guide/runtime_control.xml | 43 +- docs/users_guide/ug-book.xml.in | 1 + docs/users_guide/ug-ent.xml.in | 2 + docs/users_guide/using.xml | 2354 +++++++++++--------- docs/vh/vh.xml | 593 +++--- driver/ghci/ghc.mk | 4 +- driver/utils/cwrapper.c | 6 +- ghc.mk | 39 +- ghc/GhciMonad.hs | 48 +- ghc/GhciTags.hs | 42 +- ghc/InteractiveUI.hs | 616 ++++-- ghc/Main.hs | 19 +- ghc/ghc-bin.cabal.in | 4 +- ghc/ghc.mk | 11 +- ghc/hschooks.c | 5 +- includes/Cmm.h | 8 +- includes/HaskellConstants.hs | 12 +- includes/MachDeps.h | 27 +- includes/Rts.h | 26 +- includes/RtsAPI.h | 2 +- includes/Stg.h | 10 +- includes/ghc.mk | 31 +- includes/mkDerivedConstants.c | 23 +- includes/rts/Constants.h | 50 +- includes/rts/EventLogFormat.h | 27 +- includes/rts/FileLock.h | 6 +- includes/rts/Flags.h | 12 +- includes/rts/Hooks.h | 6 +- includes/rts/Messages.h | 15 +- includes/rts/Threads.h | 4 + includes/rts/Types.h | 6 +- includes/rts/storage/GC.h | 5 +- includes/rts/storage/InfoTables.h | 22 +- includes/rts/storage/TSO.h | 2 +- includes/stg/DLL.h | 25 +- includes/stg/MachRegs.h | 209 +- includes/stg/MiscClosures.h | 2 + includes/stg/Types.h | 29 +- libffi/ghc.mk | 11 +- .../Distribution/InstalledPackageInfo/Binary.hs | 4 +- libraries/gen_contents_index | 37 +- mk/config.mk.in | 21 +- mk/tree.mk | 2 +- mk/validate-settings.mk | 18 +- packages | 3 +- rts/Adjustor.c | 477 +++-- rts/Capability.c | 50 +- rts/Capability.h | 6 +- rts/ClosureFlags.c | 18 +- rts/Disassembler.c | 18 +- rts/FileLock.c | 144 ++ rts/FileLock.h | 15 + rts/GetTime.h | 3 + rts/HeapStackCheck.cmm | 12 +- rts/Interpreter.c | 48 +- rts/Linker.c | 826 +++++++- rts/LinkerInternals.h | 6 +- rts/PosixSource.h | 4 + rts/Prelude.h | 8 +- rts/PrimOps.cmm | 39 +- rts/Printer.c | 26 +- rts/ProfHeap.c | 2 +- rts/RaiseAsync.c | 77 +- rts/RetainerProfile.c | 4 +- rts/RtsDllMain.c | 4 +- rts/RtsDllMain.h | 2 +- rts/RtsFlags.c | 20 +- rts/RtsMain.c | 7 +- rts/RtsProbes.d | 37 +- rts/RtsStartup.c | 20 +- rts/Schedule.c | 38 +- rts/Stats.c | 163 +- rts/Stats.h | 19 +- rts/StgCRun.c | 87 +- rts/StgMiscClosures.cmm | 6 +- rts/StgStartup.cmm | 12 +- rts/Task.c | 104 +- rts/Task.h | 30 +- rts/Threads.c | 54 +- rts/Ticky.c | 26 +- rts/Trace.c | 148 ++- rts/Trace.h | 263 ++- rts/eventlog/EventLog.c | 201 ++- rts/eventlog/EventLog.h | 34 + rts/ghc.mk | 23 +- rts/hooks/MallocFail.c | 2 +- rts/hooks/OutOfHeap.c | 2 +- rts/hooks/StackOverflow.c | 2 +- rts/package.conf.in | 8 +- rts/posix/Clock.h | 35 + rts/posix/FileLock.c | 145 -- rts/posix/FileLock.h | 15 - rts/posix/GetTime.c | 50 +- rts/posix/Itimer.c | 13 +- rts/posix/OSMem.c | 2 +- rts/posix/OSThreads.c | 1 - rts/posix/Select.c | 81 +- rts/posix/Select.h | 2 +- rts/sm/Compact.c | 2 +- rts/sm/Evac.c | 2 +- rts/sm/GC.c | 25 +- rts/sm/Sanity.c | 18 +- rts/sm/Scav.c | 6 +- rts/sm/Storage.c | 178 +- rts/sm/Storage.h | 3 +- rts/win32/AwaitEvent.c | 4 +- rts/win32/GetTime.c | 74 +- rts/win32/IOManager.c | 2 +- rts/win32/OSMem.c | 20 +- rts/win32/ThrIOManager.c | 6 +- rts/win32/libHSbase.def | 1 - rts/win32/libHSghc-prim.def | 1 + rts/win32/seh_excn.c | 5 +- rules/build-package-data.mk | 8 +- rules/build-package-way.mk | 15 +- rules/build-package.mk | 2 +- rules/build-prog.mk | 4 +- rules/c-suffix-rules.mk | 22 +- rules/cmm-suffix-rules.mk | 12 +- rules/distdir-way-opts.mk | 46 +- rules/hs-suffix-rules-srcdir.mk | 30 +- rules/hs-suffix-rules.mk | 8 +- rules/package-config.mk | 15 +- rules/pretty_commands.mk | 13 + sync-all | 63 + utils/compare_sizes/Main.hs | 1 - utils/fingerprint/fingerprint.py | 2 +- utils/genapply/GenApply.hs | 650 +++--- utils/genprimopcode/Main.hs | 433 ++-- utils/genprimopcode/Parser.y | 1 - utils/genprimopcode/ParserM.hs | 1 - utils/genprimopcode/Syntax.hs | 20 +- utils/ghc-cabal/Main.hs | 44 +- utils/ghc-cabal/ghc.mk | 4 +- utils/ghc-pkg/Main.hs | 108 +- utils/ghc-pkg/ghc-pkg.wrapper | 2 +- utils/ghc-pkg/ghc.mk | 8 +- utils/ghctags/Main.hs | 16 +- utils/hp2ps/Key.c | 23 +- utils/runghc/ghc.mk | 3 + utils/runghc/runghc.hs | 12 +- validate | 27 +- 483 files changed, 33989 insertions(+), 25880 deletions(-) }}} -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:10> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: Type: bug | Status: new Priority: highest | Milestone: 7.8.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Comment(by thorkilnaur): The commit 5ddc841a547d2d37428280b04c071a1d4b83e10d causes tn23 (a Mac OS X builder) to fail with {{{ configure: error: cannot find objdump in your PATH }}} See http://darcs.haskell.org/ghcBuilder/builders/tn23/655/8.html. Best regards Thorkil -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:11> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: Type: bug | Status: new Priority: highest | Milestone: 7.8.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: 3658 Related: | ---------------------------------+------------------------------------------ Comment(by duncan): Have we looked into whether we can avoid exporting so many symbols by hiding all package-internal symbols. My intuition is that there must be lots of them that are only needed for intra-package linkage and are not needed in the external interface. The only symbols that should need to be external are the ones for things accessable via the .hi files of the exposed modules. Though if basically every module is exposed then that would not help much. -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:13> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: Type: bug | Status: new Priority: highest | Milestone: 7.8.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: 3658 Related: | ---------------------------------+------------------------------------------ Comment(by simonmar): Replying to [comment:13 duncan]: > Have we looked into whether we can avoid exporting so many symbols by hiding all package-internal symbols. My intuition is that there must be lots of them that are only needed for intra-package linkage and are not needed in the external interface. The only symbols that should need to be external are the ones for things accessable via the .hi files of the exposed modules. Though if basically every module is exposed then that would not help much. We should do this, but it wouldn't help in the case of the GHC package: as you say, every module is exposed. It would be good to have a per-module flag to say "this is a hidden module", and then we could give the symbols the correct linker hint so that they don't populate the .so file's symbol table. -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:14> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: Type: bug | Status: new Priority: highest | Milestone: 7.8.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: 3658 Related: | ---------------------------------+------------------------------------------ Changes (by rassilon): * cc: bill@… (added) Comment: Here's a pretty nutty idea: What if we split the DLL in parts by automatically forcing the .o files into partitions and create a .def file for each partition thus breaking the import library cycle. GHC already uses .def files to break the cycle between the RTS and the base DLLs. Then you would "just" modify Cabal to understand partitioned DLLs. Unfortunately, this might end up increasing the total number of partitions if you're not careful because internal symbols would now need to be exported from the partitions. :( -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:15> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ ghc-tickets mailing list [hidden email] http://www.haskell.org/mailman/listinfo/ghc-tickets |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
---------------------------------+------------------------------------------ Reporter: igloo | Owner: Type: bug | Status: new Priority: highest | Milestone: 7.8.1 Component: Compiler | Version: 7.5 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: 3658 Related: | ---------------------------------+------------------------------------------ Comment(by igloo@…): commit 56353e3da9d5718dfd25e25ccf61c78b25deefe8 {{{ Author: Ian Lynagh <[hidden email]> Date: Tue Mar 12 22:12:38 2013 +0100 Finish adding support for 2 DLLs in the ghc package; fixes #5987 ghc.mk | 3 --- rules/build-package-way.mk | 20 +++++++++++++++++--- utils/ghc-cabal/Main.hs | 27 +++++++++++++++++++++++++-- 3 files changed, 42 insertions(+), 8 deletions(-) }}} -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:16> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ ghc-tickets mailing list [hidden email] http://www.haskell.org/mailman/listinfo/ghc-tickets |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
-------------------------------+-------------------------------------------- Reporter: igloo | Owner: Type: bug | Status: closed Priority: highest | Milestone: 7.8.1 Component: Compiler | Version: 7.5 Resolution: fixed | Keywords: Os: Unknown/Multiple | Architecture: Unknown/Multiple Failure: None/Unknown | Difficulty: Unknown Testcase: | Blockedby: Blocking: 3658 | Related: -------------------------------+-------------------------------------------- Changes (by igloo): * status: new => closed * resolution: => fixed Comment: Fixed. We now have {{{ libHSghc-7.7.20130310-0-ghc7.7.20130310.dll (42123 symbols) libHSghc-7.7.20130310-ghc7.7.20130310.dll (47675 symbols) }}} -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:17> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ ghc-tickets mailing list [hidden email] http://www.haskell.org/mailman/listinfo/ghc-tickets |
|
In reply to this post by GHC
#5987: Too many symbols in ghc package DLL
-------------------------------+-------------------------------------------- Reporter: igloo | Owner: Type: bug | Status: closed Priority: highest | Milestone: 7.8.1 Component: Compiler | Version: 7.5 Resolution: fixed | Keywords: Os: Unknown/Multiple | Architecture: Unknown/Multiple Failure: None/Unknown | Difficulty: Unknown Testcase: | Blockedby: Blocking: 3658 | Related: -------------------------------+-------------------------------------------- Comment(by simonpj): Great. Are there some Wiki notes or comments in the code to explain the thinking, what the problem is, how it is solved, where the partioning is done, how you managed to factor GHC into two? Etc. This kind of global info can be hard to find. Indeed is there a wiki page surveying the whole dynamic-linking question and how we address it? I can't find it if so. Simon -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5987#comment:18> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ ghc-tickets mailing list [hidden email] http://www.haskell.org/mailman/listinfo/ghc-tickets |
| Powered by Nabble | Edit this page |
