diff options
author | Camil Staps | 2016-10-15 11:30:34 +0200 |
---|---|---|
committer | Camil Staps | 2016-10-15 11:30:34 +0200 |
commit | a8bed10f62f255fa9f1983c780de27333b691551 (patch) | |
tree | 779d96fe5a5583c81a1fa8f36117155028584871 /log.md | |
parent | Log: more testing for the heap full segfault (diff) |
log
Diffstat (limited to 'log.md')
-rw-r--r-- | log.md | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -202,3 +202,21 @@ garbage collector (`-gcc`), not with the marking/compacting garbage collector **Question**: It seems there are whole areas of the generated binaries that are all zero (like `file_table`, where you can expect that, but also e.g. `small_integers`, should this be zero as well?) + +### 2016-10-13 + +The problem that the copying collector segfaults has to do with `thumb2copy.s` +(rts). About this file: + +* `continue_after_selector_2`: checks with bit 1 if the node is in rnf and + jumps to `in_hnf_2` (`1`) or `not_in_hnf_2` (`0`) accordingly. +* `not_in_hnf_2`: checks with bit 0 if the node has been copied to the other + semispace already. If so (`1`), it jumps to `already_copied_2`. + +The issue above arises due to the fact that `r6`, which holds the node address, +has the lowest bit set. Hence, it isn't copied. + +### 2016-10-15 + +As suggested by John on the 13th, this is temporarily fixed by settings the +lowest bit to 0 manually (rts `887b38e`). Should be fixed properly. |