Skip to content
GitLab
Projects Groups Snippets
  • /
  • 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 5,249
    • Issues 5,249
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 576
    • Merge requests 576
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell CompilerGlasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #17526
Closed
Open
Issue created Nov 27, 2019 by Andrew Martin@andrewthadDeveloper

Implement Pointer Rep Proposal

Implement GHC Proposal 203, the Pointer Rep proposal.

I'm going to start on this, but I'd like to solicit some input on one design decision. Internally, GHC uses both a PrimRep type and a RuntimeRep type. The relationship between the two is well documented in Note [RuntimeRep and PrimRep] and Note [Getting from RuntimeRep to PrimRep]. The change that should be made to RuntimeRep is obvious. It is specified in the proposal. The change to PrimRep is (to me) less obvious. Currently, PrimRep is:

data PrimRep = LiftedRep | UnliftedRep | IntRep ...

I suspect that it would be a mistake to change PrimRep to:

data Levity = Lifted | Unlifted
data PrimRep = BoxedRep Levity | IntRep ...

I think it should be left alone. Does anyone more familiar with the runtime representation code have some intuition for the right change here?

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking