[Git][ghc/ghc][master] Add code comments for StgInfoTable and StgStack structs
Marge Bot
gitlab at gitlab.haskell.org
Tue Nov 10 15:28:54 UTC 2020
Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC
Commits:
2e63a0fb by David Eichmann at 2020-11-10T10:28:46-05:00
Add code comments for StgInfoTable and StgStack structs
- - - - -
2 changed files:
- includes/rts/storage/Closures.h
- includes/rts/storage/TSO.h
Changes:
=====================================
includes/rts/storage/Closures.h
=====================================
@@ -63,6 +63,11 @@ typedef struct {
-------------------------------------------------------------------------- */
typedef struct {
+ // If TABLES_NEXT_TO_CODE is defined, then `info` is offset by
+ // `sizeof(StgInfoTable)` and so points to the `code` field of the
+ // StgInfoTable! You may want to use `get_itbl` to get the pointer to the
+ // start of the info table. See
+ // https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/rts/storage/heap-objects#tables_next_to_code.
const StgInfoTable* info;
#if defined(PROFILING)
StgProfHeader prof;
=====================================
includes/rts/storage/TSO.h
=====================================
@@ -242,10 +242,22 @@ typedef struct StgTSO_ {
typedef struct StgStack_ {
StgHeader header;
- StgWord32 stack_size; // stack size in *words*
+
+ /* Size of the `stack` field in *words*. This is not affected by how much of
+ * the stack space is used, nor if more stack space is linked to by an
+ * UNDERFLOW_FRAME.
+ */
+ StgWord32 stack_size;
+
StgWord8 dirty; // non-zero => dirty
StgWord8 marking; // non-zero => someone is currently marking the stack
- StgPtr sp; // current stack pointer
+
+ /* Pointer to the "top" of the stack i.e. the most recently written address.
+ * The stack is filled downwards, so the "top" of the stack starts with `sp
+ * = stack + stack_size` and is decremented as the stack fills with data.
+ * See comment on "Invariants" below.
+ */
+ StgPtr sp;
StgWord stack[];
} StgStack;
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/2e63a0fb1bdaecc7916a3cc35dcfd2b2ef37c328
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/2e63a0fb1bdaecc7916a3cc35dcfd2b2ef37c328
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20201110/acbc9d7e/attachment-0001.html>
More information about the ghc-commits
mailing list