Title | Stack scanner assumes all references are word-aligned |
Status | closed |
Priority | essential |
Assigned user | Gareth Rees |
Organization | Ravenbrook |
Description | Ambiguous interior references that aren't word-aligned don't result in nails being added to the nailboard. (Originally reported by NB [2]. Also reported by Christian Schafmeister [3].) |
Analysis | The reason for this is that references on the stack are ignored if they are not word-aligned. In detail: mps_stack_scan_ambig calls ThreadScan, which calls TraceScanAreaTagged [1] (either directly, or via StackScan and StackScanInner), which sets: mask = sizeof(Word) - 1; and calls TraceScanAreaMasked. RB says that this is legacy behaviour from Dylan. First, we need to document this behaviour. Second, we need to provide another way to scan the stack that doesn't use this mask, otherwise we'll never be able to support unaligned ambiguous references. |
How found | manual_test |
Evidence | [1] https://info.ravenbrook.com/project/mps/master/code/trace.c [2] https://info.ravenbrook.com/project/mp...2001-11-05/mmprevol/request/mps/160001/ [3] https://info.ravenbrook.com/mail/2015/09/04/07-05-44/0/ |
Created by | Gareth Rees |
Created on | 2014-01-17 16:23:45 |
Last modified by | Gareth Rees |
Last modified on | 2016-03-13 00:24:14 |
History | 2014-01-17 GDR Created. |
Change | Effect | Date | User | Description |
---|---|---|---|---|
189541 | closed | 2016-03-02 16:44:16 | Richard Brooksby | Merging branch/2015-09-04/stack into master sources. |