... | ... | @@ -3,19 +3,17 @@ |
|
|
|
|
|
The most important type in the runtime is `StgWord`, defined in [includes/stg/Types.h](/ghc/ghc/tree/master/ghc/includes/stg/Types.h). A word is defined to be the same size as a pointer on the current platform. All these types are interconvertible without losing information, and have the same size (as reported by `sizeof`):
|
|
|
|
|
|
<table><tr><th>`StgWord`</th>
|
|
|
<td>
|
|
|
- **`StgWord`**
|
|
|
|
|
|
An unsiged integral type of word size
|
|
|
</td></tr></table>
|
|
|
|
|
|
<table><tr><th>`StgInt`</th>
|
|
|
<td>
|
|
|
- **`StgInt`**
|
|
|
|
|
|
A signed integral type of word size
|
|
|
</td></tr></table>
|
|
|
|
|
|
<table><tr><th>`StgPtr`</th>
|
|
|
<td>
|
|
|
Pointer to `StgWord`</td></tr></table>
|
|
|
- **`StgPtr`**
|
|
|
|
|
|
Pointer to `StgWord`
|
|
|
|
|
|
|
|
|
The word is the basic unit of allocation in GHC: the heap and stack are both allocated in units of a word. Throughout the runtime we often use sizes that are in units of words, so as to abstract away from the real word size of the underlying architecture.
|
... | ... | |