Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
GHC
GHC
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,262
    • Issues 4,262
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 404
    • Merge Requests 404
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Glasgow Haskell Compiler
  • GHCGHC
  • Wiki
    • Commentary
    • Profiling
  • ticky notes

Last edited by Takenobu Tani Apr 20, 2019
Page history New page

ticky notes

(NB out-of-date, but maybe historically useful; cf Debugging/TickyTicky)

Kirsten's sketchy notes on getting ticky to work

Macros for bumping ticky counters are now defined in includes/Cmm.h. Currently, code compiled with the -fticky-ticky flag fails to link because the macros rely on counter variables (things with names like ENT_DYN_IND_ctr being declared, but there are actually no declarations for them. I'll add those declarations to includes/RtsExternal.h so I can get something working. Really, there should be something that automatically generates both the macros that are in includes/Cmm.h and the declarations for the corresponding variables, so that they stay in sync.

Actually, maybe it would make more sense to add a new file, RtsTicky.h or something, which contains only ticky counter declarations (the same declarations that still exist in includes/StgTicky.h, which isn't used anymore), and that include that from includes/RtsExternal.h.

No -- put actual declarations for counter variables in another file, TickyCounters.h or something, and include that only from rts/Ticky.c; put extern declarations for those counters in RtsTicky.h, still included from includes/RtsExternal.h. Then later we can automatically generate both RtsTicky.h and TickyCounters.h. The reason for this is that the ticky macros are all over the place and they refer to the ticky counters, so the ticky counters have to be declared someplace that everyone includes, but of course the actual initializations only need to happen in one place. (Maybe there's a better way to do this...)

No, there don't need to be two files; I was confused. Just TickyCounters.h.

Huh - we define ticky macros now in Cmm.h but we can only include that in CMM files and some C files, like Schedule.c, use ticky macros. This makes my brain hurt a little.

Clone repository

GHC Home
GHC User's Guide

Joining In

Newcomers info
Mailing Lists & IRC
The GHC Team

Documentation

GHC Status Info
Working conventions
Building Guide
Debugging
Commentary

Wiki

Title Index
Recent Changes