Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,830
    • Issues 4,830
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 447
    • Merge requests 447
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #12244

Closed
Open
Created Jun 29, 2016 by Ömer Sinan Ağacan@osa1Maintainer

Idea: Remove unused symbols in link-time for smaller binaries

This caught my attention recently: https://github.com/ocaml/ocaml/pull/608

I think GHC could also benefit from this. I'm currently looking at an

  1. 0,1-generated executable, generated with -O2. In the code I defined some

unused instances, just as an example, and I see code for those in text section in the binary. There is also lots of other unused stuff (I think mostly typeclass instances) imported from libraries and they're all unused because this is a "hello world" program that imports stuff and defines instances for no reason.

There should be another ticket around here that reports some numbers on how big GHC-generated executables (and GHC itself) is (when compared with other compilers)...

Trac metadata
Trac field Value
Version 8.1
Type FeatureRequest
TypeOfFailure OtherFailure
Priority lowest
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking