summaryrefslogtreecommitdiff
path: root/log.md
diff options
context:
space:
mode:
authorCamil Staps2016-10-15 11:30:34 +0200
committerCamil Staps2016-10-15 11:30:34 +0200
commita8bed10f62f255fa9f1983c780de27333b691551 (patch)
tree779d96fe5a5583c81a1fa8f36117155028584871 /log.md
parentLog: more testing for the heap full segfault (diff)
log
Diffstat (limited to 'log.md')
-rw-r--r--log.md18
1 files changed, 18 insertions, 0 deletions
diff --git a/log.md b/log.md
index 7750feb..fb61cdc 100644
--- a/log.md
+++ b/log.md
@@ -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.